2010-09-02 186 views
2

我正在創建一個使用perl腳本,PHP,MySQL數據庫和HTML的網站。我主要關心的是確保沒有人可以訪問任何可以訪問我的信息的內容。我的意思是有無論如何有人得到我的Perl腳本,看到我的數據庫信息。我知道關於sql注入,但我沒有任何可以輸入信息的表單。有什麼我應該記住這個東西。網站安全問題

回答

4

有反正有人讓我的perl腳本,看到我的數據庫信息

當Web服務器不解析這隻會發生/程序腳本,並將它作爲明文。通常這種解析/處理只發生在特定的文件擴展名上,例如perl文件爲.pl,PHP文件爲.php。如果您(或黑客)將其重命名爲.txt,則客戶端將能夠以明文形式獲取整個腳本。儘管如此,如果黑客能夠重命名它,它仍然可以訪問整個腳本。這將通過FTP或CMS中的安全漏洞完成。

此外,我已經看到了基於路徑作爲參數從webapp上下文(外部)讀取文件(通常是圖像或其他靜態文件)的腳本。例如。download.php?filename.ext如果這樣的腳本沒有對文件路徑進行任何健全性檢查,智能黑客可以通過download.php?%2Fserver%2Fhtdocs%2Fscript.php以明文的形式獲取腳本。

+0

這是一個偉大的一點! – 2010-09-02 03:01:10

+3

這不是查看腳本來源的唯一方法。 :) – 2010-09-02 05:01:57

2

這個問題的廣度有點令人難以置信,但這是一個很好的問題,而且絕對重要。

您將對服務器產生的許多問題可能與服務器訪問本身有關,請確保您不使用任何不需要的軟件。如果您不需要名稱服務器,請關閉綁定;如果可以的話,同樣適用於ftp,甚至sendmail。如果可能,請使用強密碼和備用端口。

對於PHP,請參閱http://us3.php.net/manual/en/security.phphttp://php-ids.org/;絕對使用mysql_real_escape_string()和htmlentities()。

對於HTML/PHP/JS,見http://en.wikipedia.org/wiki/Cross-site_scripting

有很多思考。我建議試着找一個導師來幫助你弄清楚什麼是重要的。我現在正在指導一個人,即使我不完美,他也能幫助他。 SO可以提供幫助,但是一個你信任的人可以看看你如何做事可以提出建議,除非你發佈完整的代碼庫,否則你不會到達這裏。

1

Web應用程序安全性是一個很大的話題。然而,你知道SQL注入中最大的漏洞之一,所以這是一個好的開始。

一對夫婦的其他大的有跨站腳本(XSS)和跨站請求僞造(CSRF - 「看-衝浪」)

XSS - http://en.wikipedia.org/wiki/Cross-site_scripting
CSRF - http://en.wikipedia.org/wiki/Csrf

像往常一樣,維基百科提供一個很好的介紹。

您可能還需要在看向通過使用HMAC
http://en.wikipedia.org/wiki/HMAC

1

真正去閱讀本community wiki覈實請求的真實性。它充滿了信息。或者只是在這裏搜索stackoverflow有很多問題。

2
  1. 使用SQL的佔位符,即使PHP支持它。

  2. 退出您的輸出。您的模板系統可能對此有所幫助。

  3. 使用cgi-bin目錄。它確實有助於保護意外泄漏。在沒有cgi-bin的情況下製作網址很容易。

  4. 在Perl中使用污染模式,在PHP中使用強化PHP。

1

永遠不要相信任何用戶輸入任何形式..自從:)

難的是找出所有的方式,用戶可以提供輸入到您的網站..