2012-12-23 21 views
-2

我創建了一個用戶可以通過輸入用戶名和密碼創建帳戶的網站,如果我創建帳戶並鍵入<h1> dan</h1>作爲我的用戶名,用戶名將顯示在網站上作爲標題。這可能會導致負載的濫用,如果有人要使用可能是IMG SRC或負載換行。我如何讓瀏覽器忽略html標籤,所以如果我想輸入<h1> dan</h1>,它會刪除html或只是將html打印爲常規文本。如何讓瀏覽器忽略html標籤

+1

你在跑什麼? ASP.NET,JSP,PHP等?通常它是*「最好的」*在服務器端處理此事。 –

回答

0

只需使用htmlspecialchars()即可輸出用戶名。

執行的翻譯是:

  • '&'(符號)變成 '&amp;'
  • '「'(雙引號)變爲 '&quot;' 當沒有設置ENT_NOQUOTES
  • 僅當設置了ENT_QUOTES時,'''(單引號)變爲'&#039;'(或&apos;
  • '<'(小於)變成' &lt; '
  • '>'(大於)成爲' &gt;
0

也許你可以在你創建服務器端代碼的用戶時清理html標籤。

另外: 我認爲這是一個必須清理來自客戶端在服務器端的價值。

0

要麼你就必須擺脫掉所有的HTML標籤,或 - 簡單多了 - 他們的HTML編碼,&lt;&gt;替換所有<>字符。

0

你不能在瀏覽器中做到這一點,你必須在你的後端做到這一點。

  1. 確定允許在用戶名,密碼,任何價值,你問
  2. 當表單提交字符 - >驗證對先前定義的模式輸入(在服務器上)
  3. 逃生/編碼數據它被髮送給客戶端(瀏覽器)之前,即,使得<h1> dan</h1>將成爲&lt;h1glt; dan&lt;/h1&gt;
  4. 讓自己自信一些安全問題,以及如何避免他們像SQL注入或跨站腳本
2

已經給出了一些編程語言的各種答案。您可能需要在http://www.owasp.org/上閱讀有關底層技術(以及Web開發中的其他常見威脅)。

歡迎的安全問題,世界在Web開發

1

你所講的是所謂的輸入驗證。在這個問題上已經做了很多工作,從頭開始做這件事絕不是一個好主意。要記住的最重要的事情是輸入驗證必須在服務器端完成,因爲客戶端可以很容易地被操縱。

ESAPI(由OWASP提供)是一個開放源代碼的網絡安全庫,除其他功能外,您還可以進行輸入驗證,它具有多種語言(包括PHP和Java)的實現。如果你有興趣在Java中使用ESAPI,你可以看看我使用ESAPI進行輸入驗證的my blog,如果你使用的是另一種語言,那麼在Web上有這些例子。