我正在通过制作一个 cms 来学习 php,到目前为止一切都很好。接下来我要实现的是用户输入,更具体地说,我希望他们能够像在几乎每个论坛上一样在网站上写自己的帖子、问题……。
现在问题来了,我读过多篇文章说在允许用户输入时必须小心,因为他们可以执行 sql 注入和 xss 注入之类的操作。虽然我找到了很多关于这个的文章,但我没有找到任何像样的教程/指南来解决这个问题。
我挖得更深一点,发现您可以通过使用php pdo prepare 语句来保护您的 sql 免受注入。问题 #1 解决了!
现在进入问题 #2:xss 注入。我读过你必须使用htmlspecialchars之类的函数,但他们从未说过何时使用它们。(在将其插入数据库之前或将其从数据库中拉出时)我还阅读了有关 HTML Purifier 的内容,但它删除了所有 js,因此您不能允许用户发布代码示例,而我真的需要...
如果您知道我如何解决整个输入安全问题,请在下面发表评论/答案。这是非常需要和赞赏!
注意:如果这很重要,用户可以在 Markdown 中输入他们的帖子,我已经可以使用 php 转换为 html。