security - 什么时候在 url 中递增计数是个坏主意?
问题描述
我有一个网页,我想在其中显示一个视频和三个缩略图以供观看下一个视频。
现在我已经对其进行了设置,以便它从查询字符串中获取一个参数,并确定要检索哪些文件以显示在页面上。
所以 url 类似于 organization.org/video/?v=5。这将告诉它显示视频编号 5 并观看视频 4、3 和 2 的下一个面板。
我在 javascript 中完成这一切,因为视频文件是专门命名的,因此它们都可以通过它们的编号找到。(例如video5.mp4)
所以很明显,这允许页面的用户准确地弄清楚我是如何做到这一点的,并访问我为显示设置的所有视频和缩略图文件。我也知道 youtube 使用随机的 base-64 数字来标识他们的视频,但 youtube 的结构复杂,包含未列出的视频和其他因素,而我的则非常简单。
如果任何人都可以在网页上看到所有使用所示格式的文件,那么是否有充分的理由切换到更隐蔽的视频显示方式?
解决方案
如果所有视频都是公开的,那么您可以使用递增(可预测)的简单数字。Youtube 缓解的问题被命名为“不安全的直接对象引用”,您可以在此处阅读相关内容。
推荐阅读
- android - 芯片 setoncheckedchangelistener 字符串比较返回 false
- mysql - 我只想显示 MySQL 数据库中今天和未来 30 天之间的日期
- java - (Antlr)如何在终端中运行此输入并获取输出?
- python - Django 没有为 AnonymousUser- Django rest api 提供数据库表示
- react-native - react-native run-android无法在空对象上获取属性'packageName'
- python - 从 glob.glob("D\\*.txt") 获取 r"D:\test.txt" 或 "D:\\test.txt"
- c - 将 void 转换为具有相同格式的结构
- c# - ListView 项目未完全从 SQLite 数据库加载 [Xamarin.Forms]
- anchor - 使用 php 获取点击的锚文本到引用页面
- python - Tkinter 标签无法显示正确的信息(Win 10 python 3)