Youtube または Vimeo から埋め込みビデオ コードを入力できるコントロールがあります。コード インジェクション攻撃を防ぐためにユーザーから入力されたデータを検証する最善の方法は何ですか?
PS: テンプレートを保存したくなく、ユーザーが URL のみを入力できるようにします。ビデオ サービスはいつでも API を変更できます。
Youtube または Vimeo から埋め込みビデオ コードを入力できるコントロールがあります。コード インジェクション攻撃を防ぐためにユーザーから入力されたデータを検証する最善の方法は何ですか?
PS: テンプレートを保存したくなく、ユーザーが URL のみを入力できるようにします。ビデオ サービスはいつでも API を変更できます。
私にはあなたのロジックが完全に正しいとは思えませんが (動画サービスがいつでも API を変更することを恐れている場合は、同じ動画サービスが埋め込み形式を変更することを、それ以上ではないにしても同じくらい恐れているはずです)。 )、これはおそらく 2 段階のプロセスになります。
1) 入力されたものが信頼できる HTML であることを検証する (これを行う方法は実装に完全に依存します... たとえば、javascript で行うことは、Python や PHP などのバックエンドで行うこととは大きく異なります) . セットアップに関する詳細を提供すると、より的を絞った応答が得られる可能性があります。おそらく、最終的には RegEx ソリューションか、パーサーに基づくソリューションのいずれかになります (たとえば、Python タグの検証、クリーンアップ、および除外に Beautiful Soup を使用しています)。
2) ビデオ ソースの実行可能なデータを受け取ったことを検証します。これは正規表現の場合もありますが、代わりに属性値を取得して、(たとえば、Youtube ビデオ リスト エンドポイントへの) クイック API 呼び出しを実行することをお勧めします。有効な応答が得られることを確認してください。