gpt4 book ai didi

php - 如何对网站 URL 中的内容 ID 号进行 Imgur 式混淆? (PHP&MySQL)

转载 作者:行者123 更新时间:2023-11-29 00:29:12 26 4
gpt4 key购买 nike

我试图混淆显示内容的页面的 URL。通过将内容 ID 编号作为 URL 中的 GET 变量来显示内容页面。我想混淆 URL(如 this SO post 所述)。我尝试了两个答案中的方法,但一种方法给出的代码过长,而另一种方法给出的代码过于可预测。

我在 PHP 中工作,我正在使用 MySQL 表来存储内容;内容 ID 是一个自动递增的列。这意味着如果我不混淆我的 URL,用户将能够在 URL 中准确地看到网站上有多少帖子,并且可以更改 URL 以查看不同的帖子。我想避免这种情况。

我希望有类似于 Imgur.com 的混淆:他们的内容 ID 代码都是 5 个字符的代码,包含字母、大写字母和小写字母。

最佳答案

为避免需要执行大量“加密”和“解密”操作,您可以为每个页面使用唯一的 key 对。将另一个字段 (VARCHAR 5) 添加到您的页面表中,称为键,然后为每个页面随机生成一个键。

要生成 key ,您可以加密一个随机数

function random_key(){
$crypt = crypt(rand(0,9999999), 'Whatever you want to say here.');
return substr($crypt, 0, 5);
}

这会导致像 ?page=55-so3ph (?page={$id}-{$key}) 这样的 URL

然后要使用它,您可以做类似的事情

<?php

if(empty($_GET['page']))
die('missing ?page');

$page = explode('-', $_GET['page']);

if(count($page) != 2)
die('invalid ?page');

list($page_id, $page_key) = $page;

if(!is_numeric($page_id))
die('invalid page id');

$Post = your_query_method('SELECT * FROM pages WHERE id = ' . $page_id . ' AND key = "' . your_escape_function($page_key) . '"');

if(!$Post){
header('Location: /invalid_page.html');
exit;
}

//At this point we know that they ID key pair is correct

关于php - 如何对网站 URL 中的内容 ID 号进行 Imgur 式混淆? (PHP&MySQL),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17415613/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com