【发布时间】:2018-10-26 16:28:40
【问题描述】:
我的一个站点存在跨站点脚本 (XSS) 问题。现在我正在使用以下代码来获取每个页面的 URL:
$pageurl = $_SERVER['HTTP_HOST'].$_SERVER['REQUEST_URI'];
$pageurlencode = "http%3A%2F%2F".urlencode($pageurl);
$pageurl = "http://".$pageurl;
但是,当我将 $pageurl 放入我的开放图形 url (og:url) 时,就会出现问题(因为人们可以在那里注入代码)。
<meta property="og:url" content="<?php echo $pageurl; ?>" />
所以,我的问题是,如何修改我的 $pageurl 以防止添加恶意代码?
我在 StackOverflow 上搜索了类似问题,但找不到任何解决此特定问题的内容(有很多 XSS,但没有一个指向修复 get URL 调用)。因此,如果您确实看到了副本,请告诉我您在哪里看到的。谢谢。
【问题讨论】:
-
你遇到什么样的注射?通过
$_SERVER变量传递的任何内容都应该已经过清理。 See this related question. -
有人使用该 URL 在我的网站上进行了测试。他们说,当他们在浏览器中输入example.com/?"><svg/onload=confirm(1)> 时,检查代码显示 og:url 为 example.com/?"><svg/onload=confirm(1)" /> ...如果这是真的,他们可以放置代码来窃取我的 cookie。
-
奇怪...当我输入相同的网址时,我检查代码并看到example.com/?%22%3E%3Csvg/onload=confirm(1)%3E ...这是安全的。你能告诉我如何向他解释没有问题吗?为什么他对代码的看法可能不同?
标签: php xss facebook-opengraph