簡體   English   中英

將表示文件的字節數組轉換為Java中的字符串是否存在安全風險?

[英]Is converting a byte array representing a file to a String in java a security risk?

我正在保護軟件免受XML擴展攻擊,並且希望通過XMLReader運行存儲為字節數組的文件以測試擴展循環。 從字節數組簡單地創建一個字符串是否安全?這是否會使我的軟件進入可能利用的全新領域?

String xml = new String ( myByteArray );

感謝所有發表評論的人。

正如Raedwald指出的那樣,這不一定是安全問題,但是當將byte []轉換為String時,數據可能會丟失。

我發現此方法有效,而且似乎很安全。 使用此代碼,將以100,000個擴展拋出SAXParseException。 可以使用安全管理器或設置系統屬性或在運行時使用-DentityExpansionLimit = | number |來減小此限制。

InputStream textReader = new ByteArrayInputStream ( myByteArray);
SAXParserFactory parserFactory = SAXParserFactory.newInstance();
try {
        XMLReader reader = parserFactory.newSAXParser().getXMLReader();
        reader.setFeature(XMLConstants.FEATURE_SECURE_PROCESSING, true);
        InputSource inputSource = new InputSource( textReader );
        reader.parse(inputSource);
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM