【发布时间】:2013-07-13 15:49:11
【问题描述】:
我有一个控件,允许从 Youtube 或 Vimeo 输入嵌入视频代码。验证用户输入数据以防止代码注入攻击的最佳方法是什么?
PS:我不想存储模板并只允许用户输入 URL。视频服务可以随时更改其 API。
【问题讨论】:
标签: javascript html youtube-api vimeo
我有一个控件,允许从 Youtube 或 Vimeo 输入嵌入视频代码。验证用户输入数据以防止代码注入攻击的最佳方法是什么?
PS:我不想存储模板并只允许用户输入 URL。视频服务可以随时更改其 API。
【问题讨论】:
标签: javascript html youtube-api vimeo
在我看来,您的逻辑可能并不完全正确(因为如果您害怕视频服务随时更改其 API,那么您应该同样害怕(如果不是更多)同样的视频服务会更改他们的嵌入格式),这可能是一个两步过程。
1) 验证输入的是受信任的 HTML(如何执行此操作将完全取决于您的实现...例如,在 javascript 中执行此操作与在 Python、PHP 后端执行此操作有很大不同, 任何)。如果您提供有关设置的更多详细信息,您可能会获得更有针对性的响应。可能您最终会得到 RegEx 解决方案或基于解析器的解决方案(例如,我使用 Beautiful Soup 来进行 Python 标记验证、清理和排除)。
2) 验证您已收到视频源的可用数据——这也可以是正则表达式,但您可能想要获取属性值并进行快速 API 调用(例如,对 Youtube 视频列表端点)以确保您得到有效的响应。
【讨论】: