Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/229.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/security/4.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 如果路由使用$u SERVER[“REQUEST”u URI“和explode”则如何启动XSS;_Php_Security_Xss - Fatal编程技术网

Php 如果路由使用$u SERVER[“REQUEST”u URI“和explode”则如何启动XSS;

Php 如果路由使用$u SERVER[“REQUEST”u URI“和explode”则如何启动XSS;,php,security,xss,Php,Security,Xss,我的意思是: 我在我的网站(开发阶段)上使用此系统。URL如下: site.com/tag/lorem 例如,我已经将“lorem”输出到网页上的h1标签中 但是如何使用此URl方案启动simple alert()?我不会(故意)转义任何内容因为$\u SERVER['REQUEST\u URI']包含请求行中显示的未更改的URI,可以传递的字符取决于URI路径中允许的字符,更准确地说是在: 其中,pct编码为a,无保留和子文件定义如下: 当注入发生在HTML元素的内容中时,这些允许的字符不

我的意思是:

我在我的网站(开发阶段)上使用此系统。URL如下:

site.com/tag/lorem
例如,我已经将“lorem”输出到网页上的h1标签中


但是如何使用此URl方案启动simple alert()?我不会(故意)转义任何内容

因为
$\u SERVER['REQUEST\u URI']
包含请求行中显示的未更改的URI,可以传递的字符取决于URI路径中允许的字符,更准确地说是在:

其中,pct编码为a,无保留和子文件定义如下:


当注入发生在HTML元素的内容中时,这些允许的字符不足以进行跨站点脚本攻击,例如在您的案例中a
。当用户提交内容时,您至少需要一个
XSS工作(通过URL、GET、POST、COOKIE、数据库、API等)显示在页面上。在这种情况下,除非您回显URL中的部分内容,否则您很可能没有问题。具体取决于您下一步的操作(例如,回显文件内容($uri[1]))然后,您可能容易受到目录遍历攻击。将字符串末尾的URL编码的
标记传递给
将导致该标记被解码并插入HTML,然后浏览器执行该标记。@MichaelBerkowski您最好仔细检查一下。因为它不会像PHP那样自动解码th URL参数。@Gumbo啊,是的,正确。我没有阅读链接(或我猜的标题),并且假设
$\u GET
正在被重写。因此在这个用例中,通过
$\u服务器['REQUEST\u URI']
它可能不易受攻击,但有必要养成习惯,将用户输入字符串发送回浏览器以减轻这种攻击。
segment       = *pchar
pchar         = unreserved / pct-encoded / sub-delims / ":" / "@"
unreserved  = ALPHA / DIGIT / "-" / "." / "_" / "~"
sub-delims  = "!" / "$" / "&" / "'" / "(" / ")"
            / "*" / "+" / "," / ";" / "="