我有一個Android應用程序,其中用戶可以輸入任何XML源URL解析XML解析。我的應用程序然後解析XML(如果有效)並顯示結果。解決安全問題使用SAX解析器
問題是,如果用戶輸入不受信任的xml源url,應用程序和/或設備可能會受到影響。
什麼是識別風險,防止利用的最好的方式。
隨着我的研究,我發現,啓用FEATURE_SECURE_PROCESSING和禁用擴展可能的幫助。但是誰能告訴我它是什麼,我該如何實現它。
謝謝。
我有一個Android應用程序,其中用戶可以輸入任何XML源URL解析XML解析。我的應用程序然後解析XML(如果有效)並顯示結果。解決安全問題使用SAX解析器
問題是,如果用戶輸入不受信任的xml源url,應用程序和/或設備可能會受到影響。
什麼是識別風險,防止利用的最好的方式。
隨着我的研究,我發現,啓用FEATURE_SECURE_PROCESSING和禁用擴展可能的幫助。但是誰能告訴我它是什麼,我該如何實現它。
謝謝。
研究後,我發現這一點。我希望這能解決我的問題。
要啓用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);
這實際上工作嗎?這樣做時我收到一個異常。 – digitizedx
對於SAX和DOM解析器,不允許DTD應足以dcanh121指出。
factory.setFeature( 「http://apache.org/xml/features/disallow-doctype-decl」,TRUE);
對於的StAX解析器:
factory.setProperty(XMLInputFactory.IS_REPLACING_ENTITY_REFERENCES,FALSE);
你用一個模式來驗證XML內容? – 2012-05-31 17:34:00