【发布时间】:2016-04-07 01:54:11
【问题描述】:
我对此进行了相当多的研究,但我似乎无法找到我的问题的确切答案,比如将代码放在哪里。
所以我正在构建一个简单的网站供用户登录和玩 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 而不是添加斜杠作为文本字段的值似乎更有用,但我不确定这是否能解决问题。
【问题讨论】:
标签: javascript php html escaping xss