日韩成人免费在线_国产成人一二_精品国产免费人成电影在线观..._日本一区二区三区久久久久久久久不

當前位置:首頁 > 科技  > 軟件

產品經理:前端實現網頁防篡改,你會怎么做?

來源: 責編: 時間:2024-03-19 09:25:44 235觀看
導讀如果產品經理要求系統中某個頁面的輸入框做防止篡改處理,你會怎么做呢?需求梳理首先,什么是防篡改?簡單來說,就是用戶輸入input框值,我們傳給后端的值就是用戶輸入的正常情況下用戶輸入input框值,就是我們傳遞給后端的值,但是

如果產品經理要求系統中某個頁面的輸入框做防止篡改處理,你會怎么做呢?ObF28資訊網——每日最新資訊28at.com

需求梳理

  • 首先,什么是防篡改?

簡單來說,就是用戶輸入input框值,我們傳給后端的值就是用戶輸入的ObF28資訊網——每日最新資訊28at.com

  • 正常情況下用戶輸入input框值,就是我們傳遞給后端的值,但是部分瀏覽器插件或者惡意腳本會更改用戶輸入的值
  • 常見針對的是輸入的錢包地址,我們需要防范被瀏覽器插件和惡意腳本更改ObF28資訊網——每日最新資訊28at.com

  • 因為實現的效果需要對已有的業務無任何侵入性,保證原有業務的正常運行ObF28資訊網——每日最新資訊28at.com

  • 這里的需求背景在nuxt2技術棧ObF28資訊網——每日最新資訊28at.com

最終效果

  • 業務方只需要加上這個指令就可以

圖片圖片ObF28資訊網——每日最新資訊28at.com

實現思路

  • 我們如何保證對原有的代碼沒有侵入性,保證不影響原有的功能?對此我們想到一個自定義指令,在指令里面操作。但是一般指令都是直接寫在組件里面的,并不是寫在真實的 input 標簽上,對此,我們要變更我們的指令,讓其去找到真正的 input 標簽。
// 通常情況下, 這是一個Input組件,我們需要給這個指令找到其真正的 input 標簽<Input v-xxx/>
  • 這里的代碼實現的是如何找到真實的 input 標簽。

圖片圖片ObF28資訊網——每日最新資訊28at.com

  • 如何在指令里面發送請求給后端?對此,我們在指令里面使用自定義事件,讓真實的 input 標簽綁定上自定義事件
  • 里面涉及2個知識點
  1. 如何給綁定過的 input標簽解綁事件?
  2. 如何在指令里面調用請求的方法
  • 問題1答案,我們在指令的節點node, 在 vnode綁定上一個自定義函數,此自定義函數在解綁事件的時候在調用
  • 問題2答案,我們在vnode.context調用自定義方法tamperFn(); 這里的vnode.context 就是 this,相當于我們調用了 this.tamperFn(); 此處的this就是 Vue實例 (在下面的代碼事例中有個屬性 isTrusted 至關重要)

圖片圖片ObF28資訊網——每日最新資訊28at.com

圖片圖片ObF28資訊網——每日最新資訊28at.com

  • 至此,我們已經實現如何不侵入業務的情況下找到 input 標簽 & 如何在找到的 input 標簽綁定事件并且發送請求出去 & 解綁事件 (有個核心問題,到目前為止沒有看到如何區分提交的表單數據是用戶寫的還是被瀏覽器插件惡意改的,且繼續往下看)
  • js 的 event 有個屬性 isTrusted
  • 點擊鏈接了解 isTrusted[1]

圖片圖片ObF28資訊網——每日最新資訊28at.com

  • 首先要對所有的 input 標簽使用Object.getOwnPropertyDescriptor 進行劫持,找到 input 標簽的 set 屬性,此時,當變更 input 的輸入值我們都可以監控到變化,當有js變更input輸入框的值都會觸發 set 方法。

圖片圖片ObF28資訊網——每日最新資訊28at.com

  • 上述的功能代碼是一個完整的 config.js, 啟動項目的時候直接在 nuxt.config.js 加載這個 config.js 即可,業務團隊使用一個指令即可完成需求。

總結

我們來梳理下流程:ObF28資訊網——每日最新資訊28at.com

  1. 首先使用Object.getOwnPropertyDescriptor 進行劫持所有的 input 標簽, 在里面會觸發自定義事件dispatchTamper
  2. 自定義事件綁定在真實的 input 標簽上,在瀏覽器執行js階段完成了綁定事件。通過 vnode.context 我們可以調用 Vue.prototype.tamperFn 方法。在 tamperFn 里面拿到 isTrusted 來區分是不是被篡改的值。
  3. 我們在綁定 input 標簽的事情同時,設置了 node.cusFn = cusFn, 用來解綁事件。

Reference

[1]https://developer.mozilla.org/zh-CN/docs/Web/API/Event/isTrusted: https://link.juejin.cn?target=https%3A%2F%2Fdeveloper.mozilla.org%2Fzh-CN%2Fdocs%2FWeb%2FAPI%2FEvent%2FisTrustedObF28資訊網——每日最新資訊28at.com

本文鏈接:http://www.www897cc.com/showinfo-26-77688-0.html產品經理:前端實現網頁防篡改,你會怎么做?

聲明:本網頁內容旨在傳播知識,若有侵權等問題請及時與本網聯系,我們將在第一時間刪除處理。郵件:2376512515@qq.com

上一篇: 探索C++編程的利器:全面解析pragma的妙用

下一篇: 學會使用aiofiles模塊,讓Python文件操作更高效!

標簽:
  • 熱門焦點
  • 一加首款折疊屏!一加Open渲染圖出爐:罕見單手可握小尺寸

    8月5日消息,此前就有爆料稱,一加首款折疊屏手機將會在第三季度上市,如今隨著時間臨近,新機的各種消息也開始浮出水面。據悉,這款新機將會被命名為&ldquo;On
  • 28個SpringBoot項目中常用注解,日常開發、求職面試不再懵圈

    前言在使用SpringBoot開發中或者在求職面試中都會使用到很多注解或者問到注解相關的知識。本文主要對一些常用的注解進行了總結,同時也會舉出具體例子,供大家學習和參考。注解
  • 量化指標是與非:挽救被量化指標扼殺的技術團隊

    作者 | 劉新翠整理 | 徐杰承本文整理自快狗打車技術總監劉新翠在WOT2023大會上的主題分享,更多精彩內容及現場PPT,請關注51CTO技術棧公眾號,發消息【WOT2023PPT】即可直接領取
  • 拼多多APP上線本地生活入口,群雄逐鹿萬億市場

    Tech星球(微信ID:tech618)文 | 陳橋輝 Tech星球獨家獲悉,拼多多在其APP內上線了&ldquo;本地生活&rdquo;入口,位置較深,位于首頁的&ldquo;充值中心&rdquo;內,目前主要售賣美食相關的
  • 大廠卷向扁平化

    來源:新熵作者丨南枝 編輯丨月見大廠職級不香了。俗話說,兵無常勢,水無常形,互聯網企業調整職級體系并不稀奇。7月13日,淘寶天貓集團啟動了近年來最大的人力制度改革,目前已形成一
  • 2納米決戰2025

    集微網報道 從三強爭霸到四雄逐鹿,2nm的廝殺聲已然隱約傳來。無論是老牌勁旅臺積電、三星,還是誓言重回先進制程領先地位的英特爾,甚至初成立不久的新
  • iQOO 11S新品發布會

    iQOO將在7月4日19:00舉行新品發布會,推出杭州亞運會電競賽事官方用機iQOO 11S。
  • 超級標準版旗艦!iQOO 11S全球首發iQOO超算獨顯芯片

    上半年已接近尾聲,截至目前各大品牌旗下的頂級旗艦都已悉數亮相,而下半年即將推出的頂級旗艦已經成為了數碼圈爆料的主流,其中就包括全新的iQOO 11S系
  • 北京:科技教育體驗基地開始登記

      北京“科技館之城”科技教育體驗基地登記和認證工作日前啟動。首批北京科技教育體驗基地擬于2023年全國科普日期間掛牌,后續還將開展常態化登記。  北京科技教育體驗基
Top 主站蜘蛛池模板: 汝阳县| 祁门县| 武乡县| 卓资县| 嘉定区| 新民市| 涪陵区| 上杭县| 和平区| 兴化市| 昭平县| 镇赉县| 油尖旺区| 门头沟区| 卓尼县| 蚌埠市| 镶黄旗| 桐乡市| 德安县| 红原县| 长沙市| 石楼县| 溆浦县| 开封县| 广宁县| 涿州市| 敖汉旗| 乐至县| 门头沟区| 来安县| 利津县| 石河子市| 章丘市| 贵德县| 全南县| 仪征市| 聂荣县| 上虞市| 桐城市| 新竹市| 保康县|