6

私はAndroidアプリを持っており、ユーザーは任意のxmlソースURLを入力して解析できます。次に、私のアプリはxml(有効な場合)を解析して結果を表示します。

問題は、ユーザーが信頼できないxmlソースURLを入力すると、アプリやデバイスが影響を受ける可能性があることです。

リスクを特定し、悪用を防ぐための最良の方法は何ですか。

私の調査では、FEATURE_SECURE_PROCESSINGを有効にし、拡張を無効にすることが役立つ場合があることがわかりました。しかし、誰かがそれが何であるか、そして私がそれをどのように達成するかを教えてもらえますか?

ありがとう。

4

2 に答える 2

6

調べてみたところ、これが見つかりました。これで私の問題が解決することを願っています。

FEATURE_SECURE_PROCESSINGを有効にするには

SAXParserFactory spf = SAXParserFactory.newInstance();
spf.setFeature(XMLConstants.FEATURE_SECURE_PROCESSING, true);

DTDを無効にする

spf.setFeature("http://apache.org/xml/features/disallow-doctype-decl", true);
于 2012-05-31T18:01:39.270 に答える
2
  • SAXおよびDOMパーサーの場合、dcanh121で説明されているように、DTDを禁止するだけで十分です。

    factory.setFeature( "http://apache.org/xml/features/disallow-doctype-decl"、true);

  • StAXパーサーの場合:

    factory.setProperty(XMLInputFactory.IS_REPLACING_ENTITY_REFERENCES、false);

于 2012-06-01T13:17:23.257 に答える