我有一个控件,可以输入来自Youtube或Vimeo的嵌入视频代码。验证用户输入数据以防止代码注入攻击的最佳方法是什么?
PS:我不想存储模板并允许用户只输入URL。视频服务可以随时改变他们的api。
答案 0 :(得分:1)
虽然在我看来你的逻辑可能不完全合理(因为如果你害怕视频服务随时改变他们的API,你可能会害怕,如果不是更多,那些相同的视频服务改变他们的嵌入格式),这可能是一个两步过程。
1)验证输入的内容是否是受信任的HTML(如何做到这完全取决于您的实现...例如,在javascript中执行此操作与在Python,PHP中的后端执行操作有很大不同, 随你)。如果您提供有关设置的更多详细信息,则可能会获得更有针对性的响应。可能你最终会得到一个RegEx解决方案,或者一个基于解析器的解决方案(我使用Beautiful Soup,例如,用于Python标签验证,清理和排除)。
2)验证您已收到视频源的可用数据 - 这也可能是正则表达式,但您可能想要获取属性值并进行快速API调用(例如,到Youtube视频列表)端点)以确保您得到一个有效的响应。