希望这不是重复,我找不到关于这个主题的原始问题。如果您有一个供用户输入数据的区域,如何在不插入javascript或html的情况下存储和检索数据?
例如,假设用户正在撰写论坛帖子。他们决定编写一个html列表或javascript函数,在查看帖子时运行。当您在服务器端收到输入时,如何减轻这种影响?特别是PHP的服务器端。
由于
答案 0 :(得分:3)
您只需将<
替换为<
即可。
答案 1 :(得分:2)
您必须删除或翻译其帖子的违规部分。您可以在帖子进入时执行一次,并将已翻译的帖子保存在数据库中,或者您可以在每次显示帖子时执行此操作,并将原始帖子存储在数据库中。这两种方法都有其优点和缺点。
关于如何剥离坏东西,使用简单的匹配来替换所有&lt;和&gt;与&amp; lt;和&amp; gt;很长的路要走 - 但除此之外还有很多事要做。
答案 2 :(得分:2)
我使用HTML Purifier来删除我不想要的位,并留下我所做的位。默认规则非常好,但如果您需要,它可以提供极大的灵活性。
答案 3 :(得分:2)
有很多关于防止代码注入的教程。微软非常全面found here。
对于html注入,取决于你想要多么彻底,你通常可以放入一个字符串解析器来检查&lt;&gt;并删除它们,没有例外。