php,如何在 REQUEST_URI 上使用 strip_tags 或 urldecode?

发布于 2024-12-09 05:52:43 字数 697 浏览 0 评论 0原文

我有一个链接需要清理一下。

http://'.$_SERVER["SERVER_NAME"]."".$_SERVER["REQUEST_URI"].'" />

此链接将生成如下内容:

http://www.site.com/friends.php

其中 friends.php$_SERVER["REQUEST_URI"]

有时我将 id 传递给链接:

 http://www.site.com/friends.php?id=123456

我想要的是使用 strip_tags 或 urldecode 来清理此链接,并确保 id 中传递的任何内容都是 int 并且不包含字母,但我需要在原始链接上执行此操作: http://'.$_SERVER["SERVER_NAME"]."".$_SERVER["REQUEST_URI"].'" />

编辑:

我想要关联被清理掉,所以我不能这样做:

http://www.site.com/friends.php?id=<script>alert(TK00000006)</script>

i have a link that needs ti be cleaned up a bit.

http://'.$_SERVER["SERVER_NAME"]."".$_SERVER["REQUEST_URI"].'" />

this link will generate something like this:

http://www.site.com/friends.php

where friends.php is the $_SERVER["REQUEST_URI"].

sometimes i pass an id to the link:

 http://www.site.com/friends.php?id=123456

what i want is to use strip_tags or urldecode to clean this link and make sure that whatever is passed in the id is an int and contains no letters, but i need to do it on the original link: http://'.$_SERVER["SERVER_NAME"]."".$_SERVER["REQUEST_URI"].'" />

edit:

i want the link to be cleaned out so i can't do this to it:

http://www.site.com/friends.php?id=<script>alert(TK00000006)</script>

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

内心旳酸楚 2024-12-16 05:52:43

这假设您的查询字符串中只有 id:

echo 'http://'.$_SERVER['SERVER_NAME']
    . $_SERVER['SCRIPT_NAME']
    .'?id='
    .filter_var($_GET['id'], FILTER_SANITIZE_NUMBER_INT);

id= 生成的 id 是 ?id =00000006


备用答案:

echo 'http://'.$_SERVER['SERVER_NAME']
    . $_SERVER['SCRIPT_NAME']
    .'?id='
    .urlencode($_GET['id']);

//or effectively the same thing using only $_SERVER variables,
//but is much more robust as it handles multiple query parameters:
echo 'http://'.$_SERVER['SERVER_NAME']
    . $_SERVER['SCRIPT_NAME']
    .$_SERVER['QUERY_STRING'];

id= 生成的 ID 为 ?id=%3Cscript%3Ealert%28TK%29 %3C%2Fscript%3E

This assumes that you only have id in your query string:

echo 'http://'.$_SERVER['SERVER_NAME']
    . $_SERVER['SCRIPT_NAME']
    .'?id='
    .filter_var($_GET['id'], FILTER_SANITIZE_NUMBER_INT);

Resulting id from id=<script>alert(TK00000006)</script> is ?id=00000006.


Alternate answer:

echo 'http://'.$_SERVER['SERVER_NAME']
    . $_SERVER['SCRIPT_NAME']
    .'?id='
    .urlencode($_GET['id']);

//or effectively the same thing using only $_SERVER variables,
//but is much more robust as it handles multiple query parameters:
echo 'http://'.$_SERVER['SERVER_NAME']
    . $_SERVER['SCRIPT_NAME']
    .$_SERVER['QUERY_STRING'];

Resulting id from id=<script>alert(TK00000006)</script> is ?id=%3Cscript%3Ealert%28TK%29%3C%2Fscript%3E

源来凯始玺欢你 2024-12-16 05:52:43

如果 ID 不能为零,我会这样做:

$id = (int)$_GET['id'];
if ($id)
...      // valid number > 0
else
...      // invalid

If ID cannot be zero, I'd do it like this:

$id = (int)$_GET['id'];
if ($id)
...      // valid number > 0
else
...      // invalid
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文