0

ユーザーは PHP コードで Web サービス API を呼び出しますが、入力を適切にエンコードしません (& 記号など)。ナンセンスなためです (ここでは b* という単語を使用できませんが、開発者は気にしないことがわかります)政治や感情について、あなたはそれを正しく行うかどうか!) それを修正するのは私の問題です... 入力 XML を PHP で解析する前にエンコードするにはどうすればよいですか?

& 記号の文字列置換を行いましたが、当然のことながら、宇宙にはこれらの人々 (a* ワード) が使用できる無効な文字が他にもあります。

4

3 に答える 3

0

HTTP 400 エラーを返すことをお勧めします。これは、「構文が正しくないため、サーバーがリクエストを理解できなかった」ことを意味します。( RFC2616 )

有効な XML を期待しているので、XML エラーを確認するためにDOMDocumentを使用してそれをロードしloadXml、結果を使用できます (使用することをお勧めします)。libxml_get_errorslibxml_use_internal_errors(true)

応答本文で libxml エラー (「要求内のエスケープされていない '&'」など) を返すことができます。

于 2012-06-27T10:51:19.080 に答える
0

詳細とコードがなければ、必要なものを正確に言うのは難しいですが、urlencode()or htmlentities()orを見てくださいhtmlspecialchars()

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

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

http://uk3.php.net/manual/en/function.htmlspecialchars.php

于 2012-06-27T10:35:00.853 に答える
0

これを行うための組み込み機能がphpにないことはほぼ確実です。PHPのモジュールが必要とする最低限のものは...適切にエンコードされたxmlファイル(たとえば、libxml / libdom用)

不適切にエンコードされたファイルは、「何をエンコードすべきか」「何をエンコードしてはならないか」を考慮する必要があるため、サニタイズが困難です。

入力xmlをトークン化する必要があります。次に、すべてのコードを調べて、間違ったコードの部分をサニタイズする必要があります。

それは大変な作業です。あなたができるより良いことは、ソースxmlを修正または修正することです

私見では!

于 2012-06-27T10:44:12.243 に答える