私はこれに関するかなりの研究をしてきましたが、どこに配置するかのように私の問題に対する正確な答えを見つけることができないようです。xss攻撃/注射を防ぐ
私はユーザーがログインしてJavaScriptゲームをプレイするための簡単なウェブサイトを構築しています。サイトはまだ稼働していませんが、私のサイトはXSSに対して脆弱であると言って、私のサイトにリダイレクトされたリンクが送られてきました。私が私のウェブサイトに戻ったとき、私が知らないクッキーや他のものを示す警告が現れました。リンクはもはやアクティブではないので、ログインフォームの入力フィールドに追加されたスクリプトを表示することはできません。
悪意のあるユーザーがこれを行うのを防ぐ方法はありますか?それが役に立つなら、私のログインを構成するコードはここにあります。 login.phpファイルから
<form method="post">
<p>Login</p>
<div class="form-group">
<label for="login" style="float:left">Email or username</label>
<input class="form-control" name="login" value="<?php echo addslashes($_POST['login']); ?>"/>
<label for="loginpassword" style="float:left">Password</label>
<input class="form-control" type="password" name="loginpassword" value="<?php echo addslashes($_POST['loginpassword']); ?>"/>
</div>
<input type="submit" class="btn btn-success btn-lg wrap" name="submit" value="login"/>
<?php
if($error) {
echo '<div class="alert alert-danger" id="errorDiv">'.addslashes($error).'</div>';
}
?>
</form>
:
<?php
if ($_POST['submit']=="login")
{
$login = mysqli_real_escape_string($connection_info, $_POST['login']);
$loginpw = $_POST['loginpassword'];
//check database see if correct login details
// if not found then $error = "incroorect login details" etc
// if login details then match assign id from database as session variable for authentication
}
?>
は、誰かが私は、この特定のフォームのXSSを防ぐため行う必要が正確に何を教えてもらえますか?私が読んだところでは、テキストフィールドの値にaddslashesの代わりにhtmlspecialcharsを使用すると便利ですが、問題が解決するかどうかはわかりません。
http://stackoverflow.com/questions/1996122/how-to-preve nt-xss-html-php – epascarello