我已经对此做了相当多的研究,但似乎无法找到我的问题的确切答案,因为在哪个代码中放置了哪个位置。防止xss攻击/注入
因此,我正在构建一个简单的网站供用户登录和玩游戏的JavaScript游戏。该网站还没有正常运行,但我收到了一个陌生人的随机电子邮件,称我的网站容易受到XSS的攻击,并向我发送了一个重定向到我的网站的链接。当我回到我的网站时,出现了一个警报,显示了Cookie和其他一些我不知道的东西。该链接不再处于活动状态,因此我无法向您显示添加到登录表单输入字段的脚本。
有什么办法可以防止恶意用户这样做吗?如果有帮助,这是构成我的登录名的代码。
<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>
从login.php中的文件:
<?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这种特殊形式?从我读过的内容来看,使用htmlspecialchars代替文本字段值的addslashes似乎更有用,但我不确定这是否能解决问题。
http://stackoverflow.com/questions/1996122/how-to-preve nt-xss-with-html -php – epascarello