php - 为什么大多数网站的用户头像图片文件的 url 如此复杂?

标签 php database-design profile avatar

我发现大部分用户头像图片文件的url都很长,并且组合了很多数据。

例如,Facebook:

https://fbcdn-profile-a.akamaihd.net/hprofile-ak-ash4/371533_1567227XXX_1135411XXX_q.jpg

我们知道1135411XXX是用户 ID 且 q是文件大小,但是什么 3715331567227XXX代表什么?

其他:

Linkedin http://m3.licdn.com/mpr/mpr/shrink_60_60/p/4/000/165/0e4/3b2dcXX.jpg

Tumblr http://24.media.tumblr.com/avatar_4de452cedeXX_64.png

我们可以通过用户 ID 来命名文件名,它看起来更短更容易,如下所示:

<img src="http://domain.com/images/avatar/' . $user_id . '.jpg"/>

但是为什么他们把网址弄得这么长又复杂呢?什么样的潜在问题是我没有考虑到的?

最佳答案

可能有多种原因:

  1. 反矿工
  2. 安全性低下
  3. 生成的 UID
  4. 尺寸和像素等额外信息

想象一下,如果我知道您使用 5 个字符的 ID,会发生什么,我会开始加载您服务器上的每个可能的 ID,并完全挖掘出您用户的所有图片。

你会有很多流量。 您的用户会因不保护他们的隐私而起诉您。

例如,对于用户“userone”的路径有一个哈希算法是很好的,哈希值将是“1236662231”并将其用作路径,这样其他人就很难理解实际路径并且不会进行挖掘您的信息和图片网站。

关于php - 为什么大多数网站的用户头像图片文件的 url 如此复杂?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12318184/

相关文章:

sql - 在 delete 语句中忽略聚簇索引和覆盖索引。表扫描发生

drupal - 访问 Drupal 注册表中的内容配置文件 CCK 字段 (user_register)

maven-2 - 在多个生命周期中运行 Maven 目标

php - Laravel - 如何从 Controller 设置 HTTP 响应状态代码

php - VScode PHPCS 扩展错误 : Referenced Sniff "WordPress-Core" does not exist

sql-server - 数据库设计1对1关系

sql - 有外键关系的数据如何在SQL中实现软删除?

Spring 配置文件不适用于默认事件配置文件

php - Ajax 响应中的奇怪字符

php - 合并数组元素