看板 PHP 關於我們 聯絡資訊
有感而發第二彈... 這次比上次的應該虛弱了一點 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