1
Q
jsp顯示警報
A
回答
3
我只是擔心由HTML和JS注入導致的跨站點腳本問題。 CSRF似乎還沒有成爲一個問題,因爲只是提醒「你好」沒有任何你必須登錄才能做的積極副作用。
做的笨蛋方式:
<script type="text/javascript">
alert('Hello, <%= request.getParameter("name") %>');
</script>
這從JS注入患有因爲有一個JS字符串文字裏面沒有JS轉義:
name=');execute_arbitrary_code();'
,也受到HTML注入,因爲封閉腳本塊可提前關閉:
name=</script><script>execute_arbitrary_code();//
不幸的是,在JSP中沒有標準標記,它將轉義JS字符串文本中的文本(本身在HTML腳本塊中)。你可以編寫和使用自己的標籤來完成它,或者重用一個定義它的庫。例如OWASP ESAPI有:
<script type="text/javascript">
alert('Hello, <esapi:encodeForJavaScript>${param.name}</esapi:encodeForJavaScript>');
</script>
但是,避免編碼到JS中通常更容易,而是通過DOM推送數據。由於DOM是純HTML,因此您只需要正常標記轉義,該標記本身就具有<c:out>
標記。
<input type="hidden" id="name-parameter" value="<c:out value="${param.name}"/>"/>
<script type="text/javascript">
var name = document.getElementById('name-parameter').value;
alert('Hello, '+name);
</script>
這有助於保持JS與標記和服務器端代碼分離的長期目標。 data-
屬性是將數據從標記傳遞給JS的另一種好方法。
相關問題
- 1. Android顯示警報
- 2. 不顯示警報
- 3. 不顯示警報
- 4. 如何在jsp頁面中將HTML頁面顯示爲警報?
- 5. 如何在jsp中的警報/消息框中顯示圖像
- 6. OnBackPressed不顯示警報
- 7. Appirater警報不顯示
- 8. 在clickedButtonAtIndex中顯示警報?
- 9. UIWebView中顯示警報
- 10. JavaScript警報不顯示
- 11. 的JavaScript不顯示警報
- 12. 在Activity.onCreate中顯示警報(..)
- 13. 顯示數據表警報
- 14. 顯示UILocalNotification作爲警報
- 15. 自舉警報不顯示
- 16. GeoFence警報不顯示
- 17. NSAlert beginSheetModalForWindow不顯示警報
- 18. 在報警時顯示alertDialog?
- 19. JavaFX警報不顯示?
- 20. UIImagePickerController顯示的VIDEO_TOO_LONG_TITLE警報
- 21. 顯示警報單擊
- 22. onActivityResult中顯示的警報
- 23. 顯示圖像警報?
- 24. APN - 未顯示警報
- 25. Bootstrap警報不會顯示
- 26. 用VBA顯示javascript警報
- 27. Greasemonkey顯示警報一次
- 28. Phonegap不顯示警報
- 29. 警報視圖顯示我警告
- 30. 在另一個警報視圖上顯示警報視圖