對數據庫(MySQL)輸出使用htmlspeciachars,還有什麼要考慮防止XSS?對數據庫(MySQL)輸出使用htmlspeciachars,還有什麼要考慮防止XSS?
它是正確的,fethcing從數據庫中的數據時使用的輸出用htmlspecialchars(在這種情況下,MySQL的),你會防止XSS?在這種情況下,HTML將顯示在HTML文檔中?還有什麼你應該考慮的嗎?我的意思是在哪些其他情況下你可能容易受到XSS的攻擊?
可以說我有在那裏我已經創建了一個登錄系統一個網站,爲用戶發佈新帖,在這裏,用戶可以刪除這些新聞後,但JavaScript函數這裏有alertbox使用()來使確保用戶確實要刪除這條消息,如果是新聞ID被鏈接通過URL傳遞這樣的:
echo '<a class="btn-small btn-danger" onclick="deleteNews('. htmlspecialchars($newsidfk) .')" ">Delete news</a>';
JavaScript函數:
//alert deleteNews
function deleteNews($newsidfk)
{
var ans = window.confirm(Are you sure you want to delete this news post?');
if (ans == true)
{
window.location.href="delete.php?news_id_fk="+$newsidfk;
}
}
有什麼別的東西,我應該考慮防止XSS,還是不能在這裏完成XSS?比方說,我有一個字符串istead一個數字,我應該做一些JavaScript編碼,也許encodeURI()函數?
使用htmlspecialchars阻止例如script-tags,link-tags和img-tags運行是否正確?這就是XSS如何工作的原因,因爲那麼有人可以竊取用戶的私人信息?
我已經瞭解到,在顯示來自數據庫的輸出時,您應該始終進行清理,但是如何將輸入存儲到數據庫中呢?您是否應該對此進行消毒,還是僅僅使用PDO準備好的陳述或其他方法以及如何操作?
我讀過有關HTML表單消毒這篇文章維基: http://en.wikipedia.org/wiki/HTML_sanitization
好了,從來沒有聽說過這個json_encode的,應包括這樣的圖書館嗎? – user1938304
我應該只在使用字符串時才這麼做嗎?我的意思是如果它只是一個數字,我不需要這樣做? – user1938304
不,但是您的PHP應該使用[JSON](http://php.net/manual/en/book.json.php)支持來構建。 –