iT邦幫忙

0

具有潛在危險 Request.Form 的值已從用戶端 (Description="<!--是註解 ") 偵測到。

有個系統是用了國產N牌的A產品開發,是號稱無程式碼的網站製作工具
最近發現一個老舊的問題,就是欄位中不能有大於符號緊接字母的情形,
例如 <A 這樣的字串,就會出現錯誤訊息

具有潛在危險 Request.Form 的值已從用戶端 (Description="< !--是註解 ") 偵測到。

因為無程式碼的工具,只開放在Submit中寫javascript。
我已經試過很多google上找得到的方式
包含在web.config加一行
< httpRuntime requestValidationMode="2.0" />
這種會降低安全的作法

以及三種js的encode,才發現這三種都沒成功處理小於符號

自己抄改範例想把小於符號直接換成其他字串也失敗

想懇求善心人士幫寫一個範例
能在送出表單時將欄位內的全部小於符號都改成全形的js範例
非常感恩

我參考不下50篇網文,都沒成功的,誠心求助><

josephine iT邦新手 5 級 ‧ 2019-09-07 06:48:28 檢舉
喔,這篇跑到這邊解決了
https://ithelp.ithome.com.tw/questions/10195139

2 個回答

1
ccutmis
iT邦高手 10 級 ‧ 2019-08-20 09:01:49
最佳解答

不知道這是不是你要的,參考看看...

<!doctype html>
<html>
<head><meta charset='utf-8' /></head>
<body>
<h3>把所有的<換成<</h3>
<p id="t1"></p>
<p id="t2"></p>
<script>
char_for_replace='<';
submit_data='<b>床前明月光</b>疑是地上霜<A>舉頭望明月</A>低頭吃便當';
document.getElementById('t1').innerText=submit_data;
submit_data=submit_data.replace(/</g,char_for_replace);
document.getElementById('t2').innerText=submit_data;
</script>
</body>
</html>

重點是這一句:

submit_data=submit_data.replace(/</g,char_for_replace);
josephine iT邦新手 5 級 ‧ 2019-08-21 02:37:00 檢舉

謝謝ccutmis

點出重點,果然解決了,大感謝^o^

ccutmis iT邦高手 10 級 ‧ 2019-08-21 07:38:47 檢舉

不客氣~~ /images/emoticon/emoticon82.gif

2
dragonH
iT邦大師 3 級 ‧ 2019-08-20 09:27:48

codepen

給你另一種方法

用 escape 處理

這也比較常見

想要還原時

也可以用 unescape 還原

result.value = escape(input.value);
josephine iT邦新手 5 級 ‧ 2019-08-21 02:40:00 檢舉

dragonH謝謝
主要不是編碼的問題
是編碼之後寫不回欄位,那個小於符號被IIS判斷是危險的程式碼

dragonH iT邦大師 3 級 ‧ 2019-08-21 09:03:02 檢舉

一樣呀

基本上這種特殊符號

都會使用 escape 來先轉一次

我要發表回答

立即登入回答