您好, 欢迎来到 !    登录 | 注册 | | 设为首页 | 收藏本站

CodeIgniter-为什么使用xss_clean

CodeIgniter-为什么使用xss_clean

xss_clean()很广泛,而且很愚蠢。此功能的90%不能阻止xss。比如找这个词alert 却没有document.cookie。没有黑客会使用alert他们的漏洞,他们会使用xss劫持cookie或读取CSRF令牌来制作XHR。

但是,运行htmlentities()htmlspecialchars()与之冗余是多余的。其中A的情况下xss_clean()解决这一问题,htmlentities($text, ENT_COMPAT, 'UTF-8') 失败如下:

<?PHP
print "<img src='$var'>";
?>

一个简单的poc是:

http://localhost/xss.php?var = http: //domain/some_image.gif’%20onload = alert(/ xss /)

这会将onload=事件处理程序添加到image标签。一种停止这种形式的xss的方法htmlspecialchars($var,ENT_QUOTES);在这种情况下xss_clean()也可以防止这种情况。

但是,引用xss_clean()文档:

当然,没有什么是百分百的万无一失的,但是我无法使任何东西通过过滤器。

话虽如此,XSS output problem 一个input problem。例如,此函数无法考虑变量已在<script>标签或事件处理程序中。它还不会停止基于DOM的XSS。您需要考虑 如何使用数据 才能使用最佳功能。过滤输入中的所有数据是一个 。它不仅不安全,而且还会破坏数据,从而使比较变得困难。

其他 2022/1/1 18:15:32 有491人围观

撰写回答


你尚未登录,登录后可以

和开发者交流问题的细节

关注并接收问题和回答的更新提醒

参与内容的编辑和改进,让解决方法与时俱进

请先登录

推荐问题


联系我
置顶