gpt4 book ai didi

php - 处理用户输入以将其安全地存储在数据库中并像 cms 一样将其拉回

转载 作者:行者123 更新时间:2023-11-29 00:27:38 25 4
gpt4 key购买 nike

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

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

我进行了更深入的研究,发现您可以通过使用 php pdo prepare 语句 来保护您的 sql 免受注入(inject)。问题 #1 已解决!

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

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

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

最佳答案

就处理 XSS 而言,这通常是在数据从数据库中拉回后进行处理。不要使用其他库,而是查看此处以清理输出

PHP Sanitize filters

具体来说,FILTER_SANITIZE_SPECIAL_CHARS

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

Prevent XSRF

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

关于php - 处理用户输入以将其安全地存储在数据库中并像 cms 一样将其拉回,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18221164/

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