Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/243.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 编码点火器';s XSS保护正在删除<;脚本>;来自用户输入的标记。。。但我不知道';我不想这样!_Php_Codeigniter_Xss_Script Tag - Fatal编程技术网

Php 编码点火器';s XSS保护正在删除<;脚本>;来自用户输入的标记。。。但我不知道';我不想这样!

Php 编码点火器';s XSS保护正在删除<;脚本>;来自用户输入的标记。。。但我不知道';我不想这样!,php,codeigniter,xss,script-tag,Php,Codeigniter,Xss,Script Tag,CodeIgniter非常出色,但我正在使用它开发一个网站,用户需要能够共享他们的网站代码。不幸的是,CodeIgniter通过从我的用户输入到数据库中的标记来做“正确”的事情,因此当它返回数据时,如下所示: [已删除]用户数据[已删除] 但是,我需要我的站点显示脚本标记,但显然不能解析它们。我如何让CodeIgniter或PHP返回标记,但仍然为数据库清理它们并在不执行它们的情况下返回它们 谢谢 杰克 编辑:顺便说一句,它不是一个选项来使用像Markdown这样的东西,所有东西都必须输出以复制

CodeIgniter非常出色,但我正在使用它开发一个网站,用户需要能够共享他们的网站代码。不幸的是,CodeIgniter通过从我的用户输入到数据库中的
标记来做“正确”的事情,因此当它返回数据时,如下所示:

[已删除]用户数据[已删除]

但是,我需要我的站点显示脚本标记,但显然不能解析它们。我如何让CodeIgniter或PHP返回
标记,但仍然为数据库清理它们并在不执行它们的情况下返回它们

谢谢

杰克


编辑:顺便说一句,它不是一个选项来使用像Markdown这样的东西,所有东西都必须输出以复制可复制的代码,这些代码可以在其他地方无需修改就可以工作

我猜您的config.php文件中将XSS保护设置为global将其更改为下面的内容

/*
|--------------------------------------------------------------------------
| Global XSS Filtering
|--------------------------------------------------------------------------
|
| Determines whether the XSS filter is always active when GET, POST or
| COOKIE data is encountered
|
*/
$config['global_xss_filtering'] = FALSE;

我猜你在config.php文件中将XSS保护设置为全局,将其更改为下面的内容

/*
|--------------------------------------------------------------------------
| Global XSS Filtering
|--------------------------------------------------------------------------
|
| Determines whether the XSS filter is always active when GET, POST or
| COOKIE data is encountered
|
*/
$config['global_xss_filtering'] = FALSE;

所以,您希望显示脚本标记,但不希望它们由浏览器渲染

如果是这样,那么我将使用一个简单的
htmlspecialchars()
函数来解析代码,并将所有
标记转换为
脚本

我相信CodeIgniter中有一个相当的函数是来自表单帮助程序的
form_prep()
,但我不知道它在表单元素之外的行为。因此
htmlspecialchars()
函数应该满足您的要求


我同意上面Tom的观点,如果您不希望表单元素在保存前去掉
script
标记,那么您需要禁用全局XSS过滤。

那么,您希望显示脚本标记,但不希望浏览器呈现它们

如果是这样,那么我将使用一个简单的
htmlspecialchars()
函数来解析代码,并将所有
标记转换为
脚本

我相信CodeIgniter中有一个相当的函数是来自表单帮助程序的
form_prep()
,但我不知道它在表单元素之外的行为。因此
htmlspecialchars()
函数应该满足您的要求

我同意上面Tom的观点,如果您不希望表单元素在保存前去掉
script
标记,那么您需要禁用全局XSS过滤