使用PHP的URL中路径的假部分?

时间:2012-11-14 16:18:26

标签: php session session-variables

在某些网站中,我看到如下内容:

http://example.com/bills/c4grSxby6Eysk0TREcXKZDDfRse0XB/yourbill.php

只要浏览器窗口关闭(会话结束),就会更改该路径中间的随机字符串。

我需要知道创建这种伪造URL的逻辑以及一些代码示例。

2 个答案:

答案 0 :(得分:2)

我认为您正在寻找URL重写,例如,使用Apache的Mod Rewrite。这不是PHP特定的事情。

你能做的就是说你有一个像......这样的网址。

mysite.com/bills/c4grSxby6Eysk0TREcXKZDDfRse0XB/yourbill.php

其中c4grSxby6Eysk0TREcXKZDDfRse0XB是会话ID,重写时,它实际上被传递给...

mysite.com/bills/yourbill.php?session=c4grSxby6Eysk0TREcXKZDDfRse0XB

并正常处理,它只是浏览器中的一个不同的URL。

假设您正在使用Apache并启用了重写模块,您可以在.htaccess文件中定义重写规则。这种重写的规则是:

RewriteRule ^mysite.com/bills/([a-zA-Z0-9]+)/yourbill.php$ mysite.com/bills/yourbill.php?session=$1

未经测试,但应该有效,其中$ i是第i个值(在这种情况下,$ 1是第一个)正则表达式组(括号内的值)。

答案 1 :(得分:1)

使用Apache的mod_rewrite,url的第一部分将是一个变量,它将映射到一个将处理它的文件。它将在内部重写:/bills/index.php?str=c4grSxby6Eysk0TREcXKZDDfRse0XB或类似的......