2009-11-02 17 views
1

我有一個Web應用程序並對其運行XSS掃描,並報告其中有一個Java applet的頁面可能會向XSS開放。XSS和Applet/Param HTML關鍵字

測試管理,以一個JavaScript警告框分配給下面的HTML代碼:

<param name='id' value='' onMouseOver=alert(40041)> 

我的問題是 - 這是一個有效的測試?對Param對象做任何XSS JavaScript操作會導致任何真實世界的問題?我不認爲param對象上的MouseOver會做任何事情。

謝謝

回答

1

這是一個有效的測試,它可能是一個嚴重的漏洞。

如果value的內容沒有被轉義,那麼攻擊者可以關閉標籤並添加任何其他腳本。

即使<>被轉義/剝離,但引號不是,它仍然可以被利用:攻擊者可以附加事件處理程序,如onloadonerror。在現代瀏覽器中,每個元素都可以被看到(例如,即使是<head>),所以style也可以使<param>變得可能。

防止XSS這樣很簡單。當生成屬性總是使用引號,並在值變化:

  • &&amp;
  • <&lt;
  • '&x39;
  • "&quot;

而且您不必擔心劫持的<param>會發生什麼樣的壞事。

+0

雖然有趣,但這並不完全回答這個問題。 – MasterScrat 2015-03-09 16:39:00