Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/video/2.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 如何避免有人获取我的数据库?_Php_Video_Fetch - Fatal编程技术网

Php 如何避免有人获取我的数据库?

Php 如何避免有人获取我的数据库?,php,video,fetch,Php,Video,Fetch,我有一个视频网站,我担心是否有人写了一个脚本来获取我所有的数据库并使用它,因为我使用地址中的视频id作为查询字符串来表示必须显示的每一页视频 例如: http://example.com/video/215/videotitle 215是我的视频id,videotitle是我视频的标题,我想拥有类似youtube的东西: www.youtube.com/watch?v=__zj6ibrq04 我该怎么做? 我应该提到的是,我使用了mod_rewrite来获取这样的地址,因此我绝对担心有人获取

我有一个视频网站,我担心是否有人写了一个脚本来获取我所有的数据库并使用它,因为我使用地址中的视频id作为查询字符串来表示必须显示的每一页视频

例如:

http://example.com/video/215/videotitle
215
是我的视频id,
videotitle
是我视频的标题,我想拥有类似youtube的东西:

www.youtube.com/watch?v=__zj6ibrq04
我该怎么做? 我应该提到的是,我使用了
mod_rewrite
来获取这样的地址,因此我绝对担心有人获取我的数据库,因为他们可以知道视频id

这太糟糕了,因为id是我数据库中自动递增的主键!!! 有什么建议吗?

如果您的所有页面都是公开的,即任何人都可以随时访问任何站点,那么对于自动抓取您站点的机器人,您只能做一件事:检测抓取行为并对其进行限制。这意味着您需要根据IP地址和/或其他特征跟踪每个访问者,一旦他们在特定时间窗口内开始请求过多页面,就开始拒绝他们访问。不,这不是一件小事


在这种情况下,URL的外观并不重要;你可能认为YouTube的URL是“不可用的”,但是(大部分)YouTube的视频是完全公开的,可以通过浏览YouTube的首页来发现。没有必要猜测URL,这是一个不相关的细节。即使没有,您也可以通过
\uuuuuuuuuuuuuuuuuuuuaaaa
开始尝试每个URL。这需要一段时间,但这是可能的。

我认为您可以通过此链接获得问题的解决方案。。。。。。。。。。。。。。。。。。。。我看了你的链接,我不喜欢它!我需要一些特别的东西!使用随机字母的唯一字符列有什么问题?你必须自己弄清楚如何处理冲突,但是任何包含11个以上字符的字符串发生冲突的可能性都很低。这一点以前已经问过并回答过了。与任何常见问题一样,解决方案通常也存在。例如,为什么不为你工作?如果你能解释是什么让你的问题如此特别,你就可以回答它。你是对的,但是不锁门总比为陌生人开门好@阿米尔,这两种方案都是同样可以猜测的,而且扫描起来也很简单。你想在这里实现什么。。。你的“数据库”的价值是什么?