1

私はこの新しいソーシャルネットワーキングサイトに取り組んでいます。さまざまな機能の1つが投稿です。Facebookと私のサイト、またはTwitterと私のサイトに投稿できます。そうは言っても、SQLインジェクションをテストしていたので、HTMLを投稿するしかありませんでした。そうすると、たとえば、要素を使用してCSSデザインを完全に台無しにしたり、javascriptを使用してユーザーを別のサイトにリダイレクトしたりするために、サイトを操作する方法があることに気付きました。そうは言っても、私は自分のサイトをユーザーにとって安全な環境にしたいと思っています...コンピュータウイルスやポルノなど、誰かが私のサイトに近づかないようにする可能性のあるものを配布するために使用されるサイトではありません。このトピックを検索したところ、データベースに送信する前に、$post変数からHTMLを「削除」する方法を見つけました。ただし、どんなテキストでも投稿できるようにしたいと思います。HTMLとJavascriptを含み、ブラウザが「これを実行...」コードとして解釈しない場合:プレーンテキストとして表示したい。Facebookで見たことがありますが、投稿のソースコードを見ると、通常のテキストとして<、/、>が表示されていました。Facebookのソースコードを「分析」しようとしましたが、何も見つかりませんでした。次のようなタグを使ってみました<pre><code>、しかし、それらをスタイル設定および制御する機能がないため、私はあきらめて、HTMLを許可するだけに戻りました。どうか、これを行う方法を知っている人は、私を助けてください。

前もって感謝します、

TP

4

4 に答える 4

3

HTMLの特殊文字を「エスケープ」する機能があります。これは変わります

<p>Some dangerous html</p>
<script>window.location.replace('http://pornography.com');</script>

の中へ:

&lt;p&gt;Some dangerous html&lt;/p&gt;
&lt;script&gt;window.location.replace('http://pornography.com');&lt;/script&gt;

どのブラウザがプレーンテキストとして表示するか(つまり<p>Some ...)。

ちなみに、これはまさにこの投稿のテキストに起こっているでしょう。これはおそらく最高です。

于 2012-12-01T10:48:09.540 に答える
1

関数strip_tags()を使用して、入力をフィルタリングできます。テキストが変更されている場合は、ユーザーがHTMLデータを入力しようとしていることを意味します。入力を拒否するか、フィルタリングされたバージョンを保持します。

于 2012-12-01T10:42:21.387 に答える
1

リンクとJavaScriptを削除するだけでいいと思います。正規表現でできます

Webページからのリンクを解析するための正規表現?

php正規表現リソース

于 2012-12-01T10:46:56.053 に答える
1

<や>などをテキストとして表示するには、

$output = htmlentities($string, ENT_QUOTES);

これにより、HTMLコードが純粋なHTMLではなくテキストとして表示されるようになります。

http://php.net/manual/en/function.htmlentities.php

于 2012-12-01T10:55:45.003 に答える