1

我正在通过制作一个 cms 来学习 php,到目前为止一切都很好。接下来我要实现的是用户输入,更具体地说,我希望他们能够像在几乎每个论坛上一样在网站上写自己的帖子、问题……。

现在问题来了,我读过多篇文章说在允许用户输入时必须小心,因为他们可以执行 sql 注入和 xss 注入之类的操作。虽然我找到了很多关于这个的文章,但我没有找到任何像样的教程/指南来解决这个问题。

我挖得更深一点,发现您可以通过使用php pdo prepare 语句来保护您的 sql 免受注入。问题 #1 解决了!

现在进入问题 #2:xss 注入。我读过你必须使用htmlspecialchars之类的函数,但他们从未说过何时使用它们。(在将其插入数据库之前或将其从数据库中拉出时)我还阅读了有关 HTML Purifier 的内容,但它删除了所有 js,因此您不能允许用户发布代码示例,而我真的需要...

如果您知道我如何解决整个输入安全问题,请在下面发表评论/答案。这是非常需要和赞赏!

注意:如果这很重要,用户可以在 Markdown 中输入他们的帖子,我已经可以使用 php 转换为 html。

4

1 回答 1

1

就处理 XSS 而言,这通常是在将数据从数据库中拉回之后处理的。而不是使用另一个库,请查看此处以清理您的输出

PHP 清理过滤器

具体来说, FILTER_SANITIZE_SPECIAL_CHARS

我还应该建议,如果您正在尝试学习处理安全性,您也应该检查保护自己免受 XSRF 攻击。这是一篇关于 XSRF 是什么以及如何防范它的好文章:

防止 XSRF

祝你好运!并为您实际先进行自己的研究提供支持!

于 2013-08-14T00:15:00.437 回答