2010-09-08 42 views
1

我接受用戶文本並在頁面上回顯(代碼也轉到數據庫,但這是準備查詢,所以不用擔心)。我想知道是否有可能引起的安全隱患?在服務器方面,我的意思是,我知道在客戶端你可以打破,但你可以達到服務器端?迴應用戶輸入的文本的安全問題

我需要知道,如果像eval這樣的東西可能可以用這種情況下完成。

回答

2

您解釋的情況稱爲XSS。藉助XSS漏洞可能會危及您的服務器,但它確實需要其他的東西才能實現。

假設您擁有管理員帳戶,該帳戶有權通過網絡對您的服務器進行配置更改。現在,如果攻擊者創建XSS鏈接並以某種方式讓管理員點擊它,他的帳戶就會受到攻擊。

一旦攻擊者有管理員權限,他就可以系統地控制整個系統。最近發生在Apache - read their article on it。這是我見過的安全事件中最好的寫法,你會從中學到很多東西。

+0

+1。漂亮的文章..你錯過了整點雖然..我不擔心客戶端注入和它可以有什麼影響..我需要知道它是否可以有任何服務器端影響。感謝你的努力。 – pinaki 2010-09-08 07:41:54

+0

@pinaki - 它也會影響服務器端,**如果**您正在根據用戶提供的內容做某種服務器包含/評估。例如,看到這個頁面 - http://www.owasp.org/index.php/File_System#Includes_and_Remote_files – 2010-09-08 08:35:41

+0

@pinaki ..但除此之外,XSS不能直接對服務器造成傷害;它是一個客戶端的事情。 – 2010-09-08 08:36:31

0

在php中使用htmlspecialchars($ yourstring)或者去掉字符,不需要打開exploit的可能性。

+0

是否有可能的服務器端漏洞?你能給個例子嗎? – pinaki 2010-09-08 06:42:41

+0

闡述服務器端漏洞? XSS是服務器端漏洞利用。 (實際上)如果未經過消毒,用戶輸入可能會擦除整個數據庫或執行各種不需要的操作,請閱讀SQL注入。 – Ross 2010-09-08 08:03:10

0

如果您直接使用用戶輸入查詢SQL數據庫,則可能會受到SQL注入的影響。只是谷歌它的例子。

編輯:哦,我錯過了文字說,你只是回聲的文字。嗯,好吧,也許用戶可以在評估用戶輸入時發佈PHP命令。但我不知道爲什麼你應該這樣做,因爲那時用戶可以向服務器發出任何PHP命令(這是明確的安全風險)...

+0

我不是做評估..所以這種情況下不存在.. – pinaki 2010-09-08 07:43:31

0

用途:

echo htmlentities($string); 

無處不在。除非你想打開你的應用程序到幾十個可能的攻擊:

http://ha.ckers.org/xss.html

如果你需要一個呼應的HTML標記:將其保存到數據庫之前

1)使用HTMLPurifier上的HTML。

2)我推薦使用XHTML STRICT過濾。

3)禁止腳本,框架,像onclick這樣的屬性等標籤。輸入HTML的標籤和屬性用戶永遠不需要的列表非常長。只要限制他們可能需要的東西,例如:p,ol,ul,h1,h2,h3,dl,abbr,img(這些可能是危險的,很多可能通過img標籤攻擊,小心),(detto)表,也許更少。