2013-02-12 59 views
1

我正在編寫我的第一個php/mysql網站,並意識到我對安全知之甚少,超出了我在課程/書中學到的東西。在我能夠發佈自己的網站之前,我需要多少安全知識,而不必擔心獲得微薄的成功會吸引黑客並導致我的網站被破解?我需要多少網絡安全知識才能發佈我的網站?

如果它對更多細節有幫助,我將創建一個網站,允許用戶添加純文本內容以及瀏覽其他人添加的內容。該文本旨在存儲在數據庫中。

+0

「如何保護我的Web應用程序」是一個大的範圍來回答。基礎知識:使用準備好的sql語句,不要使用快速散列來存儲密碼,請使用'bcrypt'或類似的。 – Jon 2013-02-12 12:33:48

+1

首先,你應該轉向https://www.owasp.org/index.php/Category:Attack,如果你正在閱讀一門課程/書籍,那麼你最有可能容易受到某些東西(SQL注入,XSS)的影響,因爲大部分他們的書沒有實現安全性,因爲它可能會讓學習者感到困惑。 – 2013-02-12 12:34:09

+0

@Jon與非快速哈希相比,什麼是快速哈希?我正在考慮使用我讀過的sha-512。我應該使用bcrypt嗎?如果是這樣,你能解釋一下爲什麼嗎? – gabrielg 2013-02-12 17:39:03

回答

1

查看SQL注入和XSS。這一切都在驗證用戶輸入。永遠不要相信用戶。

SQL Injections

XSS

末到最好的學習方法是,因爲安全性差的進攻受到影響。然後你明白它是如何工作的。只有一個技巧,做備份。

+0

謝謝s.lenders - 我會去閱讀那些維基百科的文章ñ看看我學到了什麼! :) – gabrielg 2013-02-12 17:55:40

2

這永遠不夠。但你會希望繼續改進。當你準備好時,你可能會認識你自己。

瞭解最常見的安全問題,如:

  • SQL注入
  • 表單欺騙
  • XSS

,並記住:

  • 永遠的Valide用戶輸入(包括會話)
  • 文件夾塊訪問,不應該是公共
  • 使用河豚,而不是爲密碼
  • 隱藏錯誤給最終用戶的MD5/SHA1(並記錄它們)

而且看看在this guide其中總結了最着名的安全問題。

+0

傑弗裏真的很有用 - 一個明確的答案,我應該引導我的注意力。我還不能投票答覆,但如果可以的話,我會投你一票。感謝您幫助newb! 此外,該指南非常好 - 我非常感謝鏈接! – gabrielg 2013-02-12 17:54:59

0

您網站中最關鍵的是用戶可以向您的數據庫提供文本。 在stackoverflow上閱讀此問題以獲得有關如何防止sql注入的良好答案。 How to prevent sql injection in php

+0

是的,好點 - 我們在課堂上討論了sql注入,所以當你和s.lenders指出時,我會更深入地研究這些注入。感謝你們對我的幫助! – gabrielg 2013-02-12 17:56:38

3

你什麼都不知道,所以它取決於你的代碼有哪些可能的攻擊媒介以及風險是什麼。

問自己:

這個名單是不完整的,但應涵蓋簡單的Web應用中最常見的用例和他們的安全威脅

關於風險:只要你處理敏感個人資料,

的用戶或在自己的虛擬服務器上託管網站,您還有其他責任,因爲最糟糕的情況不再僅僅是您的網站可能被破壞,但私人數據可能會暴露,您的服務器可能會轉變爲垃圾郵件或更糟。

最重要的規則是:不要相信任何輸入的數據

的擴展,這個規則,重要初學者:究竟使用適合當前環境的措施。不要只是在用戶輸入一切,你知道並希望它會更安全,這是適得其反!我經常看到如下問題:「如果我在所有$ _POST變量上使用addslashes(mysql_real_escape_string(strip_tags(htmlspecialchars()))),我的應用程序是否安全?」 - 如果您甚至認爲這是一種有效的方法,那麼您對用戶輸入的安全性如何工作存在嚴重的誤解。我再說一遍:什麼是安全的,什麼不是,總是取決於上下文!

一個很好的資源,從學習是Open Web Application Security Project

+0

Fab非常出色,幫助我理解我學習的方向。我真的很感激你花時間寫出所有的細節,如果我可以投你的答案,我會的!我特別喜歡If'問題'然後學習'解決方案'格式! – gabrielg 2013-02-12 19:20:07