看板 PHP 關於我們 聯絡資訊
※ 引述《freebug (Freebug)》之銘言: : 除了需注意 : 1) CSRF : 2) Code injection : 其中又包含: : ◆ SQL injection : ◆ HTML / JS injection : ◆ PHP injection : 3) HTTP response splitting (但新版的PHP已經將多行header給禁止了,所以好像不必 : 擔心這點) : 還有其他需要注意的點嗎? : 目前在下知道的就這些… 之前忘記在哪聽過一句話:資安不只是意識,還有實踐。 有很多東西其實要自己實踐後才會知道,舉例來說: 1. 像是 XSS 是什麼?會帶來什麼危險?用 htmlentities 跟 htmlspecialchars 這兩個函式來防禦有什麼差別? 2. LFI 是什麼?除了被 access 到 /etc/passwd 之外,有沒有可能讓 source code 洩露? 3. SQL Injection 的原理是?用 PDO 真的可以一勞永逸嗎? mysqli_real_escape_string 真的有助於防止 SQL injection 嗎? 4. 什麼是 SSRF?會讓系統服務遭受什麼樣的風險? 5. extract 這個函式很好用,但會不會不知不覺間被拿來提權? 6. serialize 跟 unserialize 的使用時要注意什麼? 7. Hash 用戶的密碼是用什麼演算法好呢?bcrypt ?argon2?它們又有什麼差別? 8. json_encode 跟 json_decode 有什麼潛在問題嗎?有沒有可能造成 DoS? 9. 什麼是 XXE?什麼情況可能會出現? 10. 什麼是 race codition?在 PHP + MySQL 這樣的經典組合中有沒有可能出現?要如何解決? 11. 如何正確取得使用者的 IP?$_SERVER['REMOTE_ADDR']?如果商業邏輯伺服器是放在 LoadBalancer 之後呢? 當然還有很多很多,不過因為晚餐點的義大利麵上菜了,就不繼續舉例下去囉 XD。 ----- Sent from JPTT on my iPhone -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 223.136.239.233 ※ 文章網址: https://www.ptt.cc/bbs/PHP/M.1527504207.A.92A.html
DirtyVegas: 推 有幾個都沒認真想過 05/29 21:01
cjoe: 3. PDO不行嗎? 還是說PDO對特殊的utf8字元有問題? 05/31 13:46
GALINE: PDO不能解決注入,解決注入的方法是「不要組SQL」 05/31 17:31
GALINE: 例如 prepared statement。 05/31 17:33
GALINE: 例如 prepared statement + bind 參數 05/31 17:34
MoMoShota: PDO 仍然有 query 這個 method,自組 SQL 的話仍會中獎 05/31 17:54
MoMoShota: 另外,prepare 這個 method 在預設設定之下是模擬 prep 05/31 17:56
MoMoShota: are statement 的 (為了相容性),而不是真的用資料庫的 05/31 17:56
MoMoShota: prepare statement feature 05/31 17:56
cjoe: 感謝回覆 06/01 00:09