script 網頁程式漏洞問題

大家好;

關於script 漏洞問題在此想請教:

script 的漏洞.由於我已用ereg()寫了一段判斷使用者輸入表單內文字是否含有script字串 (ereg('<script>',$xxx))來防止,但是還有其他不用script標籤卻能執行script與法如:

<font onmouseover="location.href='http://tw.yahoo.com'">xxx</font>沒有script標籤,但也可以成功執...

請問這點要怎麼防範?難道要禁止輸入任何html的語法嗎?

除此之外,關於script漏洞問題還有什麼需要特別注意的?

請教大家,謝謝!

Update:

to方大馬:

1.您的解釋不錯,想請教"ereg總是會遇到貪婪(greedy)問題",這是指什麼狀況呢?

2.看起來需要判斷的東西很多,我可能把判斷全寫入一個檔案,需要判斷時再用include方式進來,要不然太占每隻程式的空間了,不過系統資源考量可能暫時擱著,畢竟一個資料庫維護不易嚴緊一點較好.

謝謝回應~!!

2 Answers

Rating
  • 1 decade ago
    Favorite Answer

    不妨把所有 on.. 系列的DHTML動作都納入偵測範圍內?

    (如onclick、onmouseover..)

    但是因為其實這些動作少說有十來個,

    因此可能要稍加考慮一下程式執行會不會浪費資源。

    (縱使現在電腦設備執行效率普遍變好)

    其實還有一些HTML標籤有一些間接的危險性。

    例如說 < object >,原先的用途就是:用來將各式各樣的資料加入到網頁中。例如影像、圖片、動畫(Flash)等。

    還有像是 < iframe >,可以透過隱藏(不指定寬高)的方式來偷偷載入某些網頁。(以前曾經有用途是做AJAX)。

    最後是 < applet >,也可以載入Java Applet。

    其實以上標籤原意都是好的,用來增加擴充網頁的可能性。但是其實很容易被當作媒介來傳播危險東西。因此不太建議讓用戶可以隨意使用這些標籤。

    題外話:

    另外建議您,除了ereg系列函數外,採用perl規則的preg系列函數,我個人是覺得比較嚴謹一點。可以用的規則也比較多。

    參考以下數則連結:

    PHP函式手冊-中文(PHP5網管實驗室) > preg_match

    http://www.php5.idv.tw/modules.php?mod=books&act=s...

    PHP官方網站 > preg_match

    http://tw.php.net/manual/en/function.preg-match.ph...

    關於正規表達式(Perl-相容)(PHP官網) -

    http://tw.php.net/manual/en/book.pcre.php

    (左邊還有一些其他php支援的正規表達式,可以參考一下)

    這裡還有一個中國人發表的PHP相容Perl正規表達式的說明文件(很有用!) -

    http://bbs.hbcms.net/redirect.php?tid=315&goto=las...

    最後如果您有興趣,其實可以參考我們學校老師寫的,一篇關於正規表達式的教學文章 - 洪朝貴副教授

    http://www.cyut.edu.tw/~ckhung/b/re/

    我之前有嘗試用ereg去做切割網頁的動作(將< dt>...</ dt>擷取下來),用ereg總是會遇到貪婪(greedy)問題。但是用preg可以有效且輕易的解決

    Source(s): MAD(C)
    • Login to reply the answers
  • 1 decade ago

    上網路,搜尋一下「XSS」

    這種XSS攻擊,已經有不少人提出防範方法了。

    回答者「方大馬」答得很棒,給您支持、鼓勵一下~

    • Login to reply the answers
Still have questions? Get your answers by asking now.