对数据库(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)支持来构建。 –