iT邦幫忙

0

ASP.net XSS 問題 (DataGrid 改了前端還是沒有變化)

  • 分享至 

  • xImage

https://ithelp.ithome.com.tw/upload/images/20211102/20143230q7IKsK9LSF.jpg
181行被掃出有XSS風險 但我對DataSet DataTable 還不是很熟所以決定去改前端
前端原本長這樣:
https://ithelp.ithome.com.tw/upload/images/20211102/201432305ZjM9Hyeg3.jpg
我把祂改成這樣:
https://ithelp.ithome.com.tw/upload/images/20211102/20143230HlpX1BvR1F.jpg
https://ithelp.ithome.com.tw/upload/images/20211102/20143230jqoLaopWUU.jpg
顯示後的結果:
https://ithelp.ithome.com.tw/upload/images/20211102/20143230DblNAsRN6L.jpg

<>不是應該會被替換成&lt &gt 這種嗎?

但怎麼還是顯示<>呢?

去動了後端:
https://ithelp.ithome.com.tw/upload/images/20211102/20143230V5Bq7vwqrA.jpg
後端 把每個資料去Encode應該怎麼寫呢? 我這樣好像是錯的


不好意思 但我如果 是輸入 編碼 但我前端有用 Encode 卻還是有換行效果 那該怎麼解決 (如下)
https://ithelp.ithome.com.tw/upload/images/20211103/20143230tNBAuoeE4p.jpg

水無痕 iT邦新手 3 級 ‧ 2021-11-03 08:21:16 檢舉
建議先了解一下 xss 的原理

基本上只要做到 允許使用者輸入 <script>alert('xss attack')</script>
而且進入檢視跟編輯時,都要顯示原本使用者輸入的字串
而不會真正變成 js 來處理 !
不好意思 但我如果 是輸入 編<br>碼 但我前端有用 Encode 卻還是有換行效果 那該怎麼解決
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

1 個回答

1
Samuel
iT邦好手 1 級 ‧ 2021-11-02 11:39:15
看更多先前的回應...收起先前的回應...

不好意思 需要用 DataGrid

Samuel iT邦好手 1 級 ‧ 2021-11-02 15:42:12 檢舉

Server.HtmlEncode 也是沒有辦法 我如果輸出的字裡有<BR> 他還是會有 換行的效果

Samuel iT邦好手 1 級 ‧ 2021-11-03 16:47:56 檢舉

一種就是你設置黑名單讓一些HTML Tag不能允許輸入
或者可以把任何有HTML的tag轉成全形就無法達到html render效果

Samuel iT邦好手 1 級 ‧ 2021-11-03 16:57:27 檢舉

然後可以測試一下你的大於小於箭頭括號
比方
test < br > aaa
有沒有被轉成這樣
test &ltr; br &gtr; aaa

Samuel iT邦好手 1 級 ‧ 2021-11-03 17:01:21 檢舉

https://ithelp.ithome.com.tw/upload/images/20211103/20107452vvElFcxnMQ.png

不好意思 一樣沒有被轉

我要發表回答

立即登入回答