网络安全检测|网络安全服务|网络安全扫描-香港墨客投资移动版

主页 > 业界资讯 > ddos防御

Php 在仍然允许html的情况下删除XSS攻击?

Php 在仍然允许html的情况下删除XSS攻击?

php

Php 在仍然允许html的情况下删除XSS攻击?,php,xss,Php,Xss,好吧,现在我遇到了一个难题,我需要允许用户插入原始HTML,但也要屏蔽所有的JS——不仅仅是脚本标签,还有href等。目前,我所知道的只是 htmlspecialchars($string, ENT_QUOTES, 'UTF-8'); 但这也会将有效标记转换为编码字符。如果我使用striptags,它也不起作用,因为它删除了标记!(我知道你可以允许标记,但问题是如果我允许任何标记,例如,人们可以向其中添加恶意JS 我可以做些什么来允许html标记但不使用XSS注入吗?我计划了一个函数:XSS(

好吧,现在我遇到了一个难题,我需要允许用户插入原始HTML,但也要屏蔽所有的JS——不仅仅是脚本标签,还有href等。目前,我所知道的只是

htmlspecialchars($string, ENT_QUOTES, 'UTF-8'); 但这也会将有效标记转换为编码字符。如果我使用striptags,它也不起作用,因为它删除了标记!(我知道你可以允许标记,但问题是如果我允许任何标记,例如,人们可以向其中添加恶意JS

我可以做些什么来允许html标记但不使用XSS注入吗?我计划了一个函数:XSS(),并用它设置了我的站点模板。它返回转义字符串。(我只需要转义方面的帮助:)

谢谢

相关:

示例代码来自:

您可以在xss(…)方法中将该代码用作参考。

这可能很有用。你的应用程序真正做什么?通常,人们使用BBCode进行文本格式化,正是因为这个问题!相关报道:@Perroloco我正在制作一个CMS,但问题是,当有人插入有时会发生的源代码时,他们可能真的这样做了,或者是因为他们想入侵该网站。BBCode不是一个选项,因为我已经启动了这个网站,人们已经发布了一些东西,所以在HTML和BBCode之间进行更改是不可接受的。好建议@两天,嗯。。。我想这可能会有帮助,但我对插件还很陌生,你能给我看一个如何使用htmlpurifier的示例吗?我喜欢这个想法,但我需要它来处理xss()函数,我写了太多的代码,除了编辑xss()所做的以外,我什么都做不了——它存储在一个设置文件中。所以,等等,我只是把它放到函数中,告诉它返回$clean_html?是的。安装可能应该在安装php文件或配置文件中的方法之外完成,这样您就可以使用return$purizer->purify($dirty\u html)如果$dirty_html是xss(…)的一个属性,那么我必须将变量设置为全局变量,对吗?我的意思是:global$config,$clean\u html对吗?我说过在xss(…)方法之外进行设置,这样,如果xss(…)在每个页面加载/服务器请求中运行多次,就不会有重复的数据。如果xss(…)只被调用一次,那么您可以在xss(…)函数中抛出设置命令,它不会影响性能。出于您的目的,我假设将所有内容都放在xss(…)中就可以了。 require_once '/path/to/HTMLPurifier.auto.php'; $config = HTMLPurifier_Config::createDefault(); $purifier = new HTMLPurifier($config); $clean_html = $purifier->purify($dirty_html);

(责任编辑:admin)