2011-06-28 73 views
0

我有一個帶有一個textarea字段的表單。該字段設置爲接受任何內容,並在提交時將輸入存儲在數據庫中。該代碼然後公開爲url:domain.com/asd。我沒有做任何類型的strip_tagshtmlentities或任何類型的xss預防。在mysql數據庫中存儲表單數據 - XSS漏洞

我的問題是,這可能會造成什麼危害。用戶可以使用任何類型的xss在輸入或輸出期間從數據庫獲取信息。

+0

可能重複的[XSS背後的一般概念是什麼?](http://stackoverflow.com/questions/2233015/what-is-the-general-concept-behind-xss) – BalusC

+0

正在存儲的數據,是什麼它被用於? –

+0

@dark site builder – Pinkie

回答

2

XSS不會對您的服務器進行任何可能的攻擊,這在沒有XSS的情況下是不可能的。 XSS所做的是讓未經授權的用戶充當授權用戶。如果您的網站沒有用戶身份驗證,則XSS通常不是威脅。

+0

。許多博客允許您發表評論而無需身份驗證(作爲匿名用戶),並且容易受到XSS的攻擊。 – Alfred

+0

@Alfred:*你*並不脆弱;你的用戶可能是。所有XSS都會讓攻擊者執行通常需要驗證的操作。它不會啓用SQL注入式攻擊,這正是問題的癥結所在。 (也就是說,沒有理由不對輸出進行編碼;它永遠不會受到傷害,並且可以防止您忘記考慮的攻擊。) – Tgr

+0

當您擁有XSS時,您的Cookie可能會被盜用,但是您正確地使用了SQL注入部分。當cookies被盜時,他們可以爲您的服務做很糟糕的事情。例如購買東西,你可能會爲此付出代價...... – Alfred

2

你可能會在存儲XSS攻擊嚴重威脅,存儲跨站腳本:

發生存儲跨站腳本漏洞時,惡意用戶可以存儲一些攻擊,這將在以後的時間被要求一些其他不知情的用戶。攻擊實際上是以某種方式存儲的,以後再執行。

因此,如果惡意代碼在文本區域中並且存儲它。在稍後顯示存儲在數據庫中的數據時,就像您正在執行代碼一樣。除此之外,每當您在SQL查詢中使用textarea中的數據時,還有很多其他方式可以與數據庫一起玩。

1

當您接受來自用戶的輸入,你至少應該:

  • 數據庫使用PDO防止SQL-注射。
  • 使用filter防止XSS

否則你的代碼將是不安全的地獄。

我建議您閱讀OWASP以瞭解更多有關很多漏洞的信息。尤其是頁面OWASP top 10是一個必讀。