Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/url/2.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 在URL查询中接受代码段_Php_Url - Fatal编程技术网

Php 在URL查询中接受代码段

Php 在URL查询中接受代码段,php,url,Php,Url,我正在尝试创建一种带有预览框的HTML编辑器应用程序。一切都很好,除了我刚才以这种格式添加了URL参数/查询 http://edit.mydomain.com/?code=%3Cp%3EWelcome!%3C%2Fp%3E&type=html 在添加此功能之前,这些功能都可以正常工作: <script type="text/javascript"> 不幸的是,直接转到该选项会加载无限重定向错误 接下来,我尝试删除所有.htaccess重写规则(因为在这个特定页面上确实不需

我正在尝试创建一种带有预览框的HTML编辑器应用程序。一切都很好,除了我刚才以这种格式添加了URL参数/查询

http://edit.mydomain.com/?code=%3Cp%3EWelcome!%3C%2Fp%3E&type=html
在添加此功能之前,这些功能都可以正常工作:

<script type="text/javascript">
不幸的是,直接转到该选项会加载无限重定向错误

接下来,我尝试删除所有.htaccess重写规则(因为在这个特定页面上确实不需要这些规则),它们是:

RewriteEngine On
RewriteRule ^(.*)/$ /$1.php [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_URI} !(.*)/$
RewriteRule ^(.*)$ http://edit.mydomain.com/$1/ [R=301,L]

RewriteCond %{THE_REQUEST} ^[A-Z]{3,9}\ /(.*)\.php\ HTTP/ [NC]
RewriteRule .+ http://edit.mydomain.com/%1  [R=301,QSA]
但是这样做会导致带有查询的URL加载一个禁止页面,说我不允许访问/

当它以前位于目录中时,它加载根主页(而不是目录),即使URL在查询后显示目录

我也有一种感觉,昨天服务器屏蔽了我的IP一段时间,因为这个网站突然为我关闭了,只有我一个人。这样的URL查询会被视为安全风险吗

删除代码的<部分(或%3C编码)可修复此错误,但输出的代码中当然缺少<

是否可以接受URL中的编码?它似乎与标记配合使用很好


谢谢。

URL参数中的
标记完全有可能触发服务器或ISP防火墙上的某种入侵保护


像这样的事情通常是通过POST请求完成的,而不是GET请求。您不这样做有什么原因吗?

您可能安装了mod_security。我相信mod_security2不允许从.htaccess文件进行控制,但旧版本允许


然而,我认为与其玩弄mod_安全规则,不如想出一种方法,在POST-var中发送代码,而不是获取代码

这样的URL查询会被视为安全风险吗?
会。它们与攻击一致。基本上,这里有一个到编辑器的直接链接:generate link按钮创建了一个带有URL查询的链接,以便有人可以直接链接到他们输入的代码。在链接中使用脚本标记不起作用。
RewriteEngine On
RewriteRule ^(.*)/$ /$1.php [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_URI} !(.*)/$
RewriteRule ^(.*)$ http://edit.mydomain.com/$1/ [R=301,L]

RewriteCond %{THE_REQUEST} ^[A-Z]{3,9}\ /(.*)\.php\ HTTP/ [NC]
RewriteRule .+ http://edit.mydomain.com/%1  [R=301,QSA]