Your SlideShare is downloading. ×
0
PHP 防駭 - 基礎觀念篇
PHP 防駭 - 基礎觀念篇
PHP 防駭 - 基礎觀念篇
PHP 防駭 - 基礎觀念篇
PHP 防駭 - 基礎觀念篇
PHP 防駭 - 基礎觀念篇
PHP 防駭 - 基礎觀念篇
PHP 防駭 - 基礎觀念篇
PHP 防駭 - 基礎觀念篇
PHP 防駭 - 基礎觀念篇
PHP 防駭 - 基礎觀念篇
PHP 防駭 - 基礎觀念篇
PHP 防駭 - 基礎觀念篇
PHP 防駭 - 基礎觀念篇
PHP 防駭 - 基礎觀念篇
PHP 防駭 - 基礎觀念篇
PHP 防駭 - 基礎觀念篇
PHP 防駭 - 基礎觀念篇
PHP 防駭 - 基礎觀念篇
PHP 防駭 - 基礎觀念篇
PHP 防駭 - 基礎觀念篇
PHP 防駭 - 基礎觀念篇
PHP 防駭 - 基礎觀念篇
Upcoming SlideShare
Loading in...5
×

Thanks for flagging this SlideShare!

Oops! An error has occurred.

×
Saving this for later? Get the SlideShare app to save on your phone or tablet. Read anywhere, anytime – even offline.
Text the download link to your phone
Standard text messaging rates apply

PHP 防駭 - 基礎觀念篇

6,122

Published on

哇寶內部教育訓練用教材

哇寶內部教育訓練用教材

Published in: Technology
0 Comments
6 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total Views
6,122
On Slideshare
0
From Embeds
0
Number of Embeds
1
Actions
Shares
0
Downloads
51
Comments
0
Likes
6
Embeds 0
No embeds

Report content
Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
No notes for slide

Transcript

  • 1. PHP 防駭 - 基礎觀念篇 如何寫出安全的 PHP 網站
  • 2. 常見的威脅 上線環境的錯誤訊息中出現相關系統資訊 • 透過網址就能進入管理頁面 • 資料庫中的資料無端地被全部刪除 • 頁面被植入不明連結 • 程式中多出不明的 PHP 檔案 •
  • 3. 開發環境的設定
  • 4. error_reporting = E_ALL • 嚴格是安全的根本 • http://localhost/hack/notice.php
  • 5. register_globals = Off • 想偷懶想節省打字字數 • http://localhost/hack/admin/index.php • http://localhost/hack/admin/index.php?isLogin=1
  • 6. 上線環境的設定
  • 7. display_errors = Off • 錯誤洩漏系統環境 • http://localhost/hack/notice.php
  • 8. log_errors = On • 將錯誤記到 log 檔中 • error_log = filename
  • 9. Safe mode • 通常是共享主機才有必要打開 • 官方建議不應該在 PHP 層級裡使用 • PHP6 已不再內建
  • 10. SQL Injection
  • 11. 資料型態的重要性 • 過份相信外部資料 • http://localhost/hack/user.php?id=1 • http://localhost/hack/user.php?id=' or 1=1; /* • POST 表單也有同樣的問題,而且更危險
  • 12. 更可怕的指令 • http://localhost/hack/user.php?id=';delete from users; /* • 其實只要權限夠,什麼指令都能執行。
  • 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() •
  • 14. 將資料編碼 • 敏感資料用可逆的加密演算法加密 – 優點:駭客不容易解讀 – 缺點:一定要用程式解讀,而且還是有可能被 破解 • 敏感資料用不可逆的加密演算法加密 – 優點:如果夠嚴密的話,駭客完全無法解讀 – 缺點:無法還原為原來密碼
  • 15. Script Injection
  • 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, …
  • 18. 木馬
  • 19. 上傳後門檔案 • 沒有檢查型態 – mime-type 還是副檔名? – 白名單檢查 • 用 SQL Injection
  • 20. 一支 PHP 程式就能看透你的網站 • http://localhost/hack/c99shell.php • http://localhost/hack/phpspy2008.php
  • 21. 討論
  • 22. 如何建立良好的程式開發習慣? • MIS能為你做些什麼? • 用套件?還是自己來? • 哪些網站提供相關資訊? •
  • 23. 謝謝

×