看板 PHP 關於我們 聯絡資訊
※ 引述《appleboy46 (小惡魔)》之銘言: : ※ 引述《backfish (121)》之銘言: : : 網站有表單接受使用者post資料,例如搜尋關鍵字的文字框。 : : 我有用javascript在使用者submit表單的時候、先過濾使用者輸入的字串, : : 送出之後的$_POST['var']也有作文字再過濾, : : 理論上來說,已經可以防止一般透過網頁瀏覽器的使用者對網站作滲透; : : 不過用一個弱點掃描的軟體,Acunetix Web Vulnerability Scanner 6, : : 掃過後,它還是出現Cross Site Scripting的警告訊息, : : 表示還是有var變數還是可被經過簒改成不合法的字串。 : : 我甚在將文字框的屬性maxlength設為10, : : 但是掃描軟體產生的靜態網頁的原始碼竟然還是可以看到如下這樣的程式碼 : : <INPUT type=hidden value=>'><ScRiPt : : value=後面開始的<script>就是掃描軟體產生的 : : 不知道它是用什麼方法滲透過去的,不用理惠maxlength的限制。 : : 想請問大家如何防止這種狀況? : : (因為是公家機關的網站,網站會被抽檢弱點掃描的問題,所以委托我幫忙處理) : 最好方式,前端 js 驗證,認證碼 : 後端判斷 http_referer 也要判斷 $_POST 資料 : 雖然 http_referer 可以偽造,但是認證碼可以確保安全 : 大致上是這樣,重點都是後端啦,前端那些 js 是方便使用者而已 我昨天後來用referer的判斷方法,目前看來是可以避過這個軟體的掃描 我發現它是自己複製一份提供跟網站上表單一樣input變數的靜態網頁 然後從靜態網頁去作攻擊測試 現在我依據referer來判斷如果不是網站的server_name的話,就把頁面轉向離開; 不過這樣的話,也等於這個掃描軟體根本沒有真的進行掃描過吧? 因為它一送出表單,就又馬上被我轉向掉。 也許這是破解這個軟體的方法之一吧! 反正先過了再說 = = -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 118.170.106.40