首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >PHP清理地址栏中的Url

问PHP清理地址栏中的Url
EN

Stack Overflow用户
提问于 2013-06-08 19:53:15
回答 3查看 1.9K关注 0票数 1

如何从地址栏中获取url并尝试对其进行消毒以防止交叉脚本攻击?

例如,在此链接中,

代码语言:javascript
复制
www.somesite.com/login/login.php 

我如何防止它

代码语言:javascript
复制
www.somesite.com/login/login.php/"><h2>This%20is%20our%20cookie<h2>         
<script>document.write%28document.cookie%29</script></h2>

我是否使用$_SERVER从地址栏获取url,然后我应该使用什么来清理链接?

谢谢。

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2013-06-08 20:01:13

对于url

$url = "http://".$_SERVER['HTTP_HOST'].$_SERVER['REQUEST_URI']

有关详细信息,请查看此链接

http://www.phpeasystep.com/phptu/27.html

对于rid所说的清理,您可以使用

htmlspecialchars() (http://ca3.php.net/htmlspecialchars)

相反,您可以使用http://php.net/manual/en/function.preg-replace.php来清理您收到的$url,通过使用它,您可以通过使用空字符串替换.php之后的任何内容来删除这些内容。

也请看看这篇文章。

Removing unwanted characters from URL in htaccess

票数 1
EN

Stack Overflow用户

发布于 2013-06-08 19:55:47

要获取它,您可以参考$_SERVER['REQUEST_URI']。

如果你想把它附加到超文本标记语言中,使用htmlspecialchars()对它进行转义。

票数 2
EN

Stack Overflow用户

发布于 2013-06-08 19:59:32

如果您想在服务器端清理url,请使用mysql_escape_string($_SERVER['REQUEST_URI'])。更重要的是,使用var_dump($_SERVER)查看您可以使用的所有值并使用它们。顺便说一句,你为什么要清理URL?你想用它做什么?我假设你想把它放到一个数据库中,但是如果你只是想从数据库中删除所有的html代码,浏览器已经在进行转义了,所以你并不真的需要这样做……

如果你想在客户端清理它,那是没有意义的,因为攻击者总是可以使用他自己的工具生成他自己的http请求,甚至不使用浏览器。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/16999264

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档