2016-04-23 15 views
0

私は、その場でデータを提供するためにtcpソケットを使用しています。これは非常に応答性が高く、実際のマシンにアクセスすることなくマシンのファイルを見ることができます。ソケットからテキストを出力する安全な方法です。

だから、例えば私たちがソケット上で提供しているテキストは次のようになります。

This book is a treatise on the theory of ethics, very popular during 
the Renaissance. The first line of Lorem Ipsum, "Lorem ipsum dolor sit 
amet..", comes from a line in section 1.10.32.;?> <?php die("malicious"); ?> 

問題になるが、出力にこれを実行するための最良の方法をエコーされ、これらのファイルは、現実的に何を含めることができますが、彼らは意志ストリームに読み込まれてページに印刷されます。 (うまくいけば、プレーンテキストで)

現在、私は出力にstrip_tagsを使用しています。

echo strip_tags($output); 

これは、彼らはただ読んで、実行されていない、これらのファイル内に存在する可能性が何かを防止する安全な方法は十分なので、テキスト衛生は、ここでの唯一の本当の重要性です。

ありがとうございます。

+0

特殊文字をエンティティに変換するために 'htmlentities()'を使うことができます。それらはHTMLとして表示されるのではなく文字通りに表示されます。 – Barmar

答えて

1

あなたは、スクリプトの先頭で

header('Content-type: text/plain'); 

を送信することができます。ブラウザは、スクリプトの出力をHTMLとしてレンダリングしようとするべきではありません。

この出力がHTMLを含むページに埋め込まれている場合、エンティティに変換してHTMLとしてレンダリングしないようにすることができます。

echo htmlentities($output); 
関連する問題