2013-01-08 15 views
1

現在嘗試使用安全登錄形式,並且連接到數據庫的php文件將存儲在web根目錄public_html之上,因此它們不能公開訪問。對於安全登錄的高級Web根訪問感到困惑

我的第一個問題是,人們說你不能用Javascript調用這個php文件。

這是有道理的,因爲JavaScript運行客戶端,可能會公開信息,但這使我有點困惑如何安全地調用此PHP文件。

我應該在web根目錄下面有另一個php文件,它調用Web根目錄上的內容敏感目錄嗎?

這是通過「../../some-folder-above-web-root/some-php-above-web-root.php」來實現的,如果是的話,那不是透露給php文件在web根目錄中的位置?或者不是位置問題,因爲人們無法訪問它(..黑客)。

總而言之,我真的只想知道如何正確和安全地與web根目錄之間的腳本進行通信。

回答

2

是的,你是對的。在Web根目錄下應該有一個PHP文件,它將訪問web根目錄上的安全PHP文件。在Zend Framework中,有一個單一的index.php文件,稱爲bootstraper,它做了很多事情,包括:

  • 設置錯誤顯示級別
  • 集包含路徑
  • 定義全局常量
  • 讀取配置文件
  • 負載庫類
  • 獲得前端控制器
  • 配置數據庫連接
  • 確定的路線,每REST風格的URL,以及MVC
  • 一套異常處理
  • 呼叫請求控制器

我會強烈建議使用MVC框架,他們是行業標準,並具有預爲許多常見問題構建了功能,包括安全登錄。Zend Framework實現訪問控制列表樣式安全性,儘管您可以輕鬆地扮演自己的角色。其他值得注意的框架是Drupal,Yii,Codeigniter,Symphony,CakePHP和Joomla。

安全的其他最佳做法:

  • 過濾器基於MIME類型的所有文件上傳,而不是文件擴展名或文件類型
  • 過濾所有的POST和GET數據,基於數據庫表列類型和長度
  • 消毒所有的SQL字符串運行它們您的服務器,除權
  • 改變所有的默認登錄密碼之前:Apache,MySQL和FTP,SSH,SVN等
  • 學習如何configur Ë的php.ini,httpd.conf文件等
  • 禁用任何服務,模塊和插件,沒有在你的框架,PHP,Apache和MySQL的使用
  • 起毛代碼
  • 使用單元測試
  • 瞭解一點關於滲透測試
+0

我知道這是前段時間回答,但如果您可以提供您找到的某些來源,我很樂意。我一直在研究你說的很多,但很難。或者可能重申一些你說的話? –

+0

從學習Zend Framework 2開始,它使用了上面提到的所有概念。學習ZF2的好消息:http://akrabat.com/和http://samsonasik.wordpress.com/ –

1

,你可以給這些文件讀取對方只准許,像754(根所有權限,讀取和執行組,只讀的除外)例如,那麼你可以使用例如file_get_contents閱讀其內容和絕對路徑。

這樣做的一個常見方法是在公共Web目錄之外有一個配置文件(內部有合理的信息),使用絕對路徑讀取它,然後將其用作變量。

如果你想在公共網絡路徑之外執行一個腳本,你必須給EXECUTE權限給'other',這是不太安全的。

另外關於您關於JavaScript的問題,它不考慮安全性:在服務器中不會​​執行javascript代碼,其中具有合理信息的文件是,它將在客戶端瀏覽器上執行,所以沒有任何在那裏閱讀。