gpt4 book ai didi

php - CodeIgniter 输入过滤

转载 作者:行者123 更新时间:2023-12-04 15:55:24 28 4
gpt4 key购买 nike

我正在开发一个图书列表网站,但遇到了 codeigniter 的 xss 过滤问题。当提交表单以创建列表时,任何包含“Javascript:”的标题都将替换为“[REMOVED]”。我试过从 POST 数组中访问数据,如下所示:

$title = $_POST['title'];

为了避免使用 Input 类,但它仍然以某种方式被过滤。有什么方法可以不关闭 global_xss_filtering 吗?

最佳答案

Is there any way around this that does not involve turning global_xss_filtering off?

不,对不起。您必须将其关闭,因为它会在 CI 执行的早期更改原始发布数据。

关于 xss 过滤器的正确使用,我可以咆哮 5 页,但我会尽量保持简洁:

  • 过滤输出,而不是输入
  • 始终牢记上下文并适当转义(这是 HTML?SQL?javascript?文本文件?)
  • 全局过滤器是一个安全毯。一旦您知道自己在做什么,就可以将其移除。

这只是为什么全局 XSS 过滤器是一个坏主意的众多悲惨示例之一:

  • 用户注册了一个帐户,并将其密码设置为 document.write123
  • 您处理密码,并最终对字符串 [removed]123 进行哈希处理
  • 现在,用户可以使用以下任何密码登录,因为这些密码也会变成 [removed]123在您对它们进行哈希验证之前通过过滤器:

    • <script>123
    • document.write123
    • document.cookie123
    • 等等……

不应该发生。用户不应该能够使用多个密码登录(除非它是设计使然......我想)。

另外,祝您保存所有使用 <iframe> 的博客文章好运。 s...例如 YouTube 视频。

关于php - CodeIgniter 输入过滤,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9674848/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com