Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/233.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 如何将动态url转换为安全url_Php_User Interface - Fatal编程技术网

Php 如何将动态url转换为安全url

Php 如何将动态url转换为安全url,php,user-interface,Php,User Interface,我有类似的URL http://www.somewebsite.com/sub-category/?q=1 http://www.somewebsite.com/products/?q=1 http://www.somewebsite.com/product/?q=61 但我需要将url更改为更安全的url,这样就没有人可以键入其他号码并获得具有其他id的产品,否则我不希望任何人看到?q=1。有人请帮帮我 提前感谢您可以添加如下哈希值 其中,哈希是使用后端中的密钥生成的。 像这

我有类似的URL

  http://www.somewebsite.com/sub-category/?q=1

  http://www.somewebsite.com/products/?q=1

  http://www.somewebsite.com/product/?q=61
但我需要将url更改为更安全的url,这样就没有人可以键入其他号码并获得具有其他id的产品,否则我不希望任何人看到?q=1。有人请帮帮我


提前感谢

您可以添加如下哈希值

其中,哈希是使用后端中的密钥生成的。 像这样的

$productID = 1;
$url = "http://www.somewebsite.com/products/?q=".$productID;
$hash = md5("my-secret-key".$productID);
$url .= "&hash=".$hash;
然后根据您的请求检查哈希是否有效

if(md5("my-secret-key".$_GET['q']) != $_GET['hash']){
    die("Invalid hash");
}

原则上,你总是可以尝试在URL中键入一些东西,并希望你找到一些东西

您可以为每个产品创建一个产品Id散列,并将其存储在一个或存储产品的同一个表中

然后传递散列,而不是产品ID


猜64个字符比猜一个要难得多

您可以应用
编码解码的概念为您进行一些轻松的阅读:。非常感谢您的帮助。这很有效。如果有人试图更改哈希,我是否可以将页面指向主页…?是的,您可以将die()替换为标题(“位置:/”;出口非常感谢你的回答。