2010-09-09 83 views
1

我有一個功能,用戶可以在表單提交純XML。當我的服務器得到響應時,我將根據XML模式進行驗證,然後將其存儲在數據庫中。我從來不會在網頁上顯示XML,除非它處於編輯形式。如何抵禦黑客如果用戶提交XML

我使用XML來呈現HTML表單或文字在網頁中,我將編碼的文本,從不顯示實際的XML,除非它進行編輯瀏覽器。我受到很多黑客攻擊嗎?我怎樣才能更好地防禦呢?

例如:

<criteria name="Performance" type="textbox">115 Horsepower</criteria> 

上面會呈現兩種字表單元格115馬力或將它使我在它與字115馬力一個文本框。

+1

如果你闡述了你與XML做什麼這將有助於。 – 2010-09-09 15:47:01

+0

當我收到來自用戶的XML我把它存儲在數據庫中一旦對我的模式進行驗證。有一次,當我需要XML時,我使用它來呈現網頁中的文本或呈現HTML表單。但是在我將它發送給brwser之前,我會對渲染的任何東西進行編碼。 – Luke101 2010-09-09 15:57:37

+0

「我使用XML來呈現HTML表單」 - 所以您以某種方式解釋XML。如果語言/口譯員是圖靈完成,那麼攻擊者可以上傳一個無限循環。 – dtb 2010-09-09 16:00:31

回答

1

認爲在XML丟失的某些部分和某些部件的重複兩次或更多次的方向。照顧架構中的邊緣情況。

+0

OK..i已經編輯我的職務 – Luke101 2010-09-09 16:10:41

1

下面是XML內容的攻擊向量的一個例子:

http://en.wikipedia.org/wiki/Billion_laughs

+1

不是十億笑,6.8×10^38個笑道。 – KeithS 2010-09-09 16:06:34

+0

有沒有辦法防禦這種攻擊? – Luke101 2010-09-09 17:22:04

+0

維基頁面鏈接到http://www.ibm.com/developerworks/xml/library/x-tipcfsx.html具有對Java(禁用XML解析器的某些功能)的指導方針。大概類似的事情將適用於其他語言。 – 2010-09-10 07:26:53

相關問題