簡體   English   中英

如何防范此類攻擊?

[英]How to protect against this type of attack?

我最近有人對一個應用程序運行了一次滲透測試,它發現的一個關鍵問題是在這樣的 URL 中傳遞了一些垃圾:

http://example.com/index.php/
%27%3e%3c%69%4d%67%20%53%72%43%3d%78%20%4f%6e%45%72%52%6f%52%3d%61%6c%65%
72%74%28%34%37%34%31%32%29%3e

問題在於,攻擊者只需添加一個斜杠,然后添加一些編碼的 javascript(帶有警告框的圖像標簽),就會殺死頁面。 簡單有效的攻擊。

我該如何編碼? 我已經在清理所有預期的用戶輸入(例如當用戶通過index.php?id=<script>alert(1)</script> )。 那部分工作正常。

我如何防止上面第一段下面引用的意外數據? (另外,這種類型的 XSS 攻擊有具體的名稱嗎?)

小心使用$_SERVER['PHP_SELF]

你應該做htmlspecialchars($_SERVER["PHP_SELF"]); htmlentities($_SERVER["PHP_SELF"]);

這是正常的 XSS 攻擊。

更多信息:信息

我在href標簽中使用了$_SERVER['PHP_SELF'] ,所以這就是觸發 JavaScript 的地方。

解決方法很簡單。 我在使用之前通過過濾器運行PHP_SELF ,任何通過的垃圾都被清理干凈並可以安全地在頁面上使用。

以前的答案已經可以了,但由於某種原因htmlspecialchars()不過濾單引號。 如果您需要過濾單引號,則需要在htmlspecialchars($_SERVER["PHP_SELF"], ENT_QUOTES)添加一個參數

我如何防止上面第一段下面引用的意外數據?

filter_input( INPUT_SERVER, 'PHP_SELF', FILTER_SANITIZE_FULL_SPECIAL_CHARS );

謝謝@Sverri M. Olsen解釋為什么要使用filter_input而不是超全局變量

https://stackoverflow.com/a/15103555/11173494

另外,這種類型的 XSS 攻擊有特定的名稱嗎?

這是存儲型 XSS 黑客可以構造自定義查詢,通過存儲惡意代碼來攻擊用戶。

@Sandeep Nair解釋了存儲型 XSS反射型 XSS之間的區別

https://stackoverflow.com/a/48893119/11173494

strip_tags()函數可能會有所幫助。 例如:

$str = 'index.php?id=<script>alert(1)</script>';    
echo "<pre>";
echo strip_tags($str), "\n";

以上將輸出:

index.php?id=alert(1)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM