我已經對此做了相當多的研究,但似乎無法找到我的問題的確切答案,因爲在哪個代碼中放置了哪個位置。防止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