看板 PHP 關於我們 聯絡資訊
網站有表單接受使用者post資料,例如搜尋關鍵字的文字框。 我有用javascript在使用者submit表單的時候、先過濾使用者輸入的字串, 送出之後的$_POST['var']也有作文字再過濾, 理論上來說,已經可以防止一般透過網頁瀏覽器的使用者對網站作滲透; 不過用一個弱點掃描的軟體,Acunetix Web Vulnerability Scanner 6, 掃過後,它還是出現Cross Site Scripting的警告訊息, 表示還是有var變數還是可被經過簒改成不合法的字串。 我甚在將文字框的屬性maxlength設為10, 但是掃描軟體產生的靜態網頁的原始碼竟然還是可以看到如下這樣的程式碼 <INPUT type=hidden value=>'><ScRiPt >alert(466365088108);</ScRiPt> name=discuss id=discuss maxlength=10> value=後面開始的<script>就是掃描軟體產生的 不知道它是用什麼方法滲透過去的,不用理惠maxlength的限制。 想請問大家如何防止這種狀況? (因為是公家機關的網站,網站會被抽檢弱點掃描的問題,所以委托我幫忙處理) -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 61.30.138.165
fillano :你必須在php檢查資料啦,用javascript的話,他直接送 01/10 14:03
fillano :post你就破功了。 01/10 14:04
backfish :你說的用PHP檢查 是送出之後了吧 01/10 14:16
backfish :我同事叫我判斷送出表單的來源是不是本機 01/10 14:17
backfish :我現在試這個看看 01/10 14:18
edl2000 :做兩層吧? js 先過濾, 然後 php 再過濾 01/10 18:45