我有一個控件,允許從Youtube或Vimeo輸入嵌入的視頻代碼。驗證用戶輸入的數據以防止代碼注入攻擊的最佳方法是什麼?如何驗證用戶輸入的嵌入式視頻(youtube,vimeo)代碼?
PS:我不想存儲模板,只允許用戶輸入URL。視頻服務可以隨時改變他們的api。
我有一個控件,允許從Youtube或Vimeo輸入嵌入的視頻代碼。驗證用戶輸入的數據以防止代碼注入攻擊的最佳方法是什麼?如何驗證用戶輸入的嵌入式視頻(youtube,vimeo)代碼?
PS:我不想存儲模板,只允許用戶輸入URL。視頻服務可以隨時改變他們的api。
雖然在我看來,你的邏輯可能不完全合理(因爲如果你害怕視頻服務隨時改變它們的API,那麼你應該害怕,如果不是更多的話,那些相同的視頻服務改變他們的嵌入格式),這可能是一個兩步過程。
1)確認輸入的內容是可信的HTML(如何完成這個操作將完全取決於您的實現......例如,在JavaScript中執行操作與在Python中執行後端操作完全不同, PHP,不管)。如果您提供有關您的設置的更多詳細信息,則可能會得到更有針對性的響應。很可能你會得到RegEx解決方案或基於解析器的解決方案(我使用Beautiful Soup,例如,用於Python標記驗證,清理和排除)。
2)驗證您已收到視頻源的可用數據 - 這也可以是正則表達式,但您可能想要獲取該屬性值並執行快速API調用(例如,用於Youtube視頻列表端點)以確保您獲得工作響應。