作者ybite (小犬)
看板PHP
標題[建議] 給初學者的幾個PHP開發建議 (II)
時間Wed Aug 6 00:12:07 2008
有感而發第二彈...
這次比上次的應該虛弱了一點
4. 總是記住開放HTML是有危險的
當你把資料表的資料弄出來了,把它丟進顯示出來的頁面時
記得要對HTML作一定程度的處理
如果你的那個欄位不開放HTML,請用htmlspecialchars
要開放HTML的情況很麻煩,因為現在XSS滿街跑
用簡單的Regex擋<script>是沒辦法克服XSS的
如果你真的要開放HTML,建議找一個XSS filter Orz
之前在板上就看到某支購物程式的管理介面XSS
把你的客戶資料全部丟給別人,然後看起來什麼事情都沒發生 囧
5. 小心allow_url_fopen!
allow_url_fopen一樣也是個很好很強大的參數
只要開了這個,抓網站頁面只要一行就可以解決:file_get_contents('
http://xxx');
但是在PHP 5.2.0以前,一開了這個東西,也可以作URL的include/require!!
只要一被人不小心找到你程式碼中的弱點,像:include $path.'doggy.php')
只要他$path倒一個URL,就可以執行他寫的PHP。讓你Server跑得半死!
PHP 5.2.0以後,您可以用allow_url_include來防止這個現象的發生 :)
6. 善用方法來Debug你的MySQL SQL Query
SQL Query誰都會寫錯,但一開始可能會找不到是這個東西的錯
簡言之,當你發現錯誤訊息是源自於mysql_fetch_array之類
通常就是Query寫錯了
Query偵錯的方式百百種
你可以用mysql_error讓mysql吐出這個Query的結果
也可以把你的式子echo出來丟給phpmyadmin跑(我個人喜歡的作法)
另外建議養成對欄位名稱/資料表名稱加上identifier quote(`)的習慣
這樣可以避免踩到保留字的地雷(ex:date是個大地雷)
Ex:SELECT * FROM `doggy` WHERE `dream` LIKE '%bark%'
一次三個,所以先到這邊,下回作者取材 Orz
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 140.112.199.119
推 BloodyDawn :推! 08/06 13:56
推 renegade :謝~~受益了~~ 08/13 01:22