javascript - 後台新增資料,需要屏蔽插入<script>指令碼

來源:互聯網
上載者:User
1、做一個後台,用ajax來傳資料到php介面,然後對資料庫進行操作。假如新增一條資料為的時候,應該怎麼屏蔽呢?
2、試過在前台擷取資料的時候用將每個字串進行轉義,試過在後台用mysql_real_escape_string()。可是資料庫裡面存的還是角括弧格式,並且還是會有彈窗。
3、用的這個函數進行的轉義,然後網頁上讀取資料庫的時候,alert語句還是照常執行了,求大神指點一二~

function html_encode(str){     var s = "";     if (str.length == 0) return "";     s = str.replace(/&/g, ">");     s = s.replace(//g, ">");     s = s.replace(/ /g, " ");     s = s.replace(/\'/g, "'");     s = s.replace(/\"/g, """);     s = s.replace(/\n/g, "
"); return s; }

回複內容:

1、做一個後台,用ajax來傳資料到php介面,然後對資料庫進行操作。假如新增一條資料為的時候,應該怎麼屏蔽呢?
2、試過在前台擷取資料的時候用將每個字串進行轉義,試過在後台用mysql_real_escape_string()。可是資料庫裡面存的還是角括弧格式,並且還是會有彈窗。
3、用的這個函數進行的轉義,然後網頁上讀取資料庫的時候,alert語句還是照常執行了,求大神指點一二~

function html_encode(str){     var s = "";     if (str.length == 0) return "";     s = str.replace(/&/g, ">");     s = s.replace(//g, ">");     s = s.replace(/ /g, " ");     s = s.replace(/\'/g, "'");     s = s.replace(/\"/g, """);     s = s.replace(/\n/g, "
"); return s; }

a) php有個專門的函數用來將特殊字元轉換為實體字元的,htmlspecialchars()。
b) 其實比較省事的辦法就是在輸出的時候做轉義,比如smarty有 escape 之類的方法
c) 使用所見即所得 (WYSIWYG)編輯器,這種編輯器內建了script標記過濾
d) 如果只是不讓用script標籤,那麼存入資料庫之前preg_replace('/<(script\b[^>]*)>/i', '%lt;$1%gt;', $content)也行
e) 如果前台沒有該問題的話,最省事的辦法是對背景操作人員加強教育,讓他們別亂搞。

你這個JS函數沒有什麼問題,看看是不是往資料庫裡存的時候在哪裡又給轉回來了

htmlspecialchars()
  • 相關文章

    聯繫我們

    該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

    如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

    A Free Trial That Lets You Build Big!

    Start building with 50+ products and up to 12 months usage for Elastic Compute Service

    • Sales Support

      1 on 1 presale consultation

    • After-Sales Support

      24/7 Technical Support 6 Free Tickets per Quarter Faster Response

    • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.