2011-06-05 71 views
0

我正在構建一個API,我有一個方法可以接受帶有幾個參數的POST請求。在POST請求中接受原始HTML

其中一個參數是HTML代碼。用戶可以傳入一個完整的HTML頁面,我應該如何接受?

可以問用戶base64_encode嗎?還是有更好的方法?

我擔心解析無效字符和不同的字符編碼等

回答

3

你真的希望用戶自己的HTML與base64編碼? :)
這將是不可行的

只要把一個接受的HTML。小心XSS和其他惡意人員

+0

如果html代碼有一個符號,這會不會影響我的POST請求? – Abs 2011-06-05 11:55:17

+0

@Abs:no ........這裏在stackoverflow(和任何其他網站)你把&符號沒有任何base64編碼的用戶:) – dynamic 2011-06-05 11:56:08

+0

你的意思是在這裏的stackoverflow API:http://api.stackoverflow .com/1.1 /用法 - 沒有提交任何請求或創建請求? – Abs 2011-06-05 12:11:45

0

是啊!我認爲使用base_64編碼會更明智地作爲輸入。由於在以後直接傳入HTML的消費者使用API​​時,HTML很容易被注入,並且會因字符串,引號,特殊字符等原因而變得糟糕。

如果不是那麼;

一條規則可能就像你可以在你的API中製作另一個方法一樣包裝html字符串,如encode("<html>...</html>");通過這種方式,您會希望編碼字符串始終處於解碼狀態並進一步使用。

+0

這也是我的思路。總會有特殊的字符,我會處理和不同的語言和字符編碼,所以如果我讓用戶對base64進行編碼,那麼我可以處理。恐怕在這個過程中可能會迷失方向。 – Abs 2011-06-05 12:09:16

+0

從不!沒有什麼可能會丟失..事實上,base64編碼是爲了將特殊字符編組爲ASCII格式,因此它們可以很容易地遠程轉移。和你想要的一樣。在一定程度上與XML相關聯。 – 2011-06-05 12:22:10

+0

只是爲了證明一點點;考慮ASP.NET中的__VIEWSTATE,它完全封裝在base64編碼中,其下面存在各種控制狀態鍵/值對的XML。 – 2011-06-05 12:25:32