我正在撰写一本书籍列表网站,并且遇到了codeigniter的xss过滤问题。提交表单以创建列表时,包含“Javascript:”的任何标题都将替换为“[REMOVED]”。我试过从POST数组中访问数据,如下所示:
$title = $_POST['title'];
避免使用Input类,但它仍然以某种方式被过滤。有没有办法解决这个问题,而不涉及关闭global_xss_filtering?
答案 0 :(得分:9)
有没有办法解决这个问题,而不涉及关闭global_xss_filtering?
不,抱歉。您必须将其关闭,因为它会在CI执行的早期更改原始发布数据。
关于正确使用xss过滤器,我可能会咆哮5页,但我会尽量保持简洁:
这里只是为什么全局XSS过滤器是个坏主意的许多悲剧性例子之一:
document.write123
[removed]123
现在,用户可以使用以下任何密码登录,因为在您对其进行哈希验证之前,这些密码也会被过滤器变为[removed]123
:
<script>123
document.write123
document.cookie123
不应该发生。用户不应该使用多个密码登录(除非是设计......我猜)。
另外,祝您使用<iframe>
... YouTube视频的任何博客文章都好运。