3

リンクされたビデオを表示する「公開ページ」をすべてのユーザーに許可するphpアプリケーションがあります。埋め込みビデオの html コードを指定できる入力テキスト ボックスがあります。私たちが直面している問題は、その入力をそのままページに直接表示する、あらゆる種類のスクリプトがここに挿入され、非常に安全でないシステムにつながる可能性があることです。

すべてのサイトの埋め込みコードを許可したいのですが、構造が異なるため、それぞれの構造を把握するのが難しくなります。

このシナリオに取り組むために人々がとったアプローチは何ですか? これを行うサードパーティのスクリプトはありますか?

4

3 に答える 3

1

oEmbedを利用するある種の疑似テンプレートの使用を検討してください。oEmbed は、ビデオにリンクするための安全な方法です (コンテンツのオーソリティとして、直接の埋め込みを許可するのではなく、埋め込み可能なコンテンツへの参照を許可します)。

たとえば、次のようなものを検索するパーサーを作成できます。

[embed]http://oembed.link/goes/here[/embed]

次に、多くの PHP oEmbed ライブラリの 1 つを使用して、提供されたリンクからリソースを要求し、疑似埋め込みコードを実際の埋め込みコードに置き換えることができます。

お役に立てれば。

于 2010-09-23T03:04:36.373 に答える
0

ユーザーに動画の URL を入力してもらいます。そこから、適切なコードを自分で挿入できます。彼らにとってはより簡単で、あなたにとってはより安全です。

不明な URL に遭遇した場合は、ログに記録し、それをサポートするために必要なコードを追加してください。

于 2010-09-23T02:35:52.870 に答える
0

最善の方法は、許可されているホワイト リスト タグを作成し、それ以外はすべて削除することです。「onsomething」属性を削除するには、それらのタグのすべての属性をフィルタリングする必要もあります。

適切な解析を行うには、XML パーサーを使用する必要があります。XMLReader と XMLWriter はそれを行うのにうまく機能します。XMLReader からデータを読み取り、タグがホワイト リストにある場合は XMLWriter に書き込みます。プロセスの最後に、解析されたデータが XMLWritter にあります。

このコード例は、このスクリプトです。ホワイトリストには タグtestとがありvideoます。次の入力を与える場合:

<z><test attr="test"></test><img />random text<video onclick="evilJavascript"><test></test></video></z>

これは次のように出力されます:

<div><test attr="test"></test>random text<video><test></test></video></div>
于 2010-09-23T02:28:08.640 に答える