禁用单个文本区域的codeigniter中的CRM_Security XSS-Cleaner

时间:2019-03-12 11:03:48

标签: php codeigniter

我有一个CodeIgniter项目。

现在我尝试发送一个在文本区域中包含html-script标签的公式。

http://your(sub)domain/.well-known/pki-validation/<filename.txt>

我的问题是,core / CRM_Security.php中的一个函数用“已删除”文本替换了此文本(脚本标记)。

通常,这是防止XSS注入的理想方法,但是在这种情况下,我需要按原样发送和获取脚本标签。

有没有办法标记此文本区域以使其具有某种例外?

或者以另一种方式,我可以防止通过xss_clean函数删除它?

这里有xss_clean函数的一些代码

    <textarea>
      <script src="linkto.js"></script>
      ... 
    </textarea>

感谢您的帮助!

2 个答案:

答案 0 :(得分:0)

不要禁用XSS防护。在那里是有原因的。在您的文本区域中处理用户输入时,请尝试对HTML实体进行编码/解码。

PHP文档:http://php.net/manual/en/function.htmlentities.php

答案 1 :(得分:0)

也许不是最好的解决方法,但很简单。

在我发送数据之前,我用占位符替换“脚本”一词。

在通过xss-cleaner之后,我将占位符替换为单词“ script”。

所以我可以存储所需的值;-)