0
我試圖阻止多個帳戶來自同一個IP:如何只允許每個IP兩個帳戶?
if (! empty($_SERVER['HTTP_CLIENT_IP']))
{
$ip = $_SERVER['HTTP_CLIENT_IP'];
}
elseif (! empty($_SERVER['HTTP_X_FORWARDED_FOR']))
{
$ip = $_SERVER['HTTP_X_FORWARDED_FOR'];
}
else
{
$ip = $_SERVER['REMOTE_ADDR'];
}
$stmt = $db->prepare("SELECT 1 FROM users WHERE ip = :ip");
$stmt->bindParam(':ip', $ip, PDO::PARAM_STR);
$result = $stmt->execute();
$row = $stmt->fetch();
if ($row)
{
die("Only one account per IP is allowed !");
}
這工作,但如果我想允許每個IP兩個賬戶?我試過了:
$stmt = $db->prepare("SELECT * FROM users WHERE ip = :ip");
$stmt->bindParam(':ip', $ip, PDO::PARAM_STR);
$result = $stmt->execute();
$row = $stmt->fetch();
if ($row > 1)
{
die("Only one account per IP is allowed !");
}
不起作用。第二個帳戶是不允許的。
這是一個從根本上被誤導的想法。如果600個用戶在同一個IP後面怎麼辦?這有可能發生。另外,請注意,您可以使用的僅**可靠的IP信息是'REMOTE_ADDR'。其他所有內容都是從客戶端頭獲取的,可以**免費**欺騙。 –
@Pekka웃,有可能嗎?那麼IP的目的是什麼? – Alegro
也是PHP的腳本編寫,如果你想強加這種限制,你應該操縱你的http守護程序配置,你的假設是錯誤的。 – user1824407