このコードを使用することの安全性は疑問です。特に$_SERVER['REMOTE_ADDR']
と$_SERVER['HTTP_USER_AGENT']
私はこれに関するいくつかの研究を行ってきました。 私がここでやっているような変数を比較するのは安全だと言えるでしょうか? SQLクエリを実行するとき、または自分のページにコンテンツを表示するときに、その値についてのみ心配する必要がありますか?
私が使用する場所によっては、mysqli_real_escape_string
またはhtmlspecialchars
を実行する必要があります。
いつtrim
またはstripslashes
の機能を使用する必要がありますか?
私は、ウェブサイトが最も明白な/一般的な方法でハッキングされないように保護しようとしています。巨大な保護を必要としませんが、私はそれが少なくともまともに安全であることを望みます!
私は間違っているか間違っているのですか? ほとんどのことを説明するガイドがありますか?
session_start();
if (!isset($_SESSION['logged_in'])) {
$_SESSION['logged_in'] = false;
$_SESSION['ip_address'] = $_SERVER['REMOTE_ADDR'];
$_SESSION['user_agent'] = (isset($_SERVER['HTTP_USER_AGENT'])) ? $_SERVER['HTTP_USER_AGENT'] : '';
} else {
if ($_SESSION['ip_address'] !== $_SERVER['REMOTE_ADDR'] || ($_SESSION['user_agent'] !== $_SERVER['HTTP_USER_AGENT'])) {
session_destroy();
header('Location: view/index.php');
die();
}
}
あなたは '$ _SESSION'ではなく' $ _SERVER'を意味します。 – Barmar
'$ _SERVER ['REMOTE_ADDR']'はウェブサーバから来て、接続されているIPが何であるかを伝えます。 '$ _SERVER ['HTTP_X']'値は、クライアントから送信されたHTTPヘッダから来て、どのような方法でも操作できます。これらの値は信頼されるべきではなく、通常のユーザー入力のように扱われるはずです。 –
yeah oops、fixed –