常見網絡安全防護

1 阻斷服務攻擊(DOS)

  • 阻斷服務攻擊,想辦法目標網絡資源用盡
  • 變種:分布式阻斷服務攻擊

影響:

  1. 寬帶消耗性(消耗目標的帶寬)
  2. 資源消耗型(消耗目標的計算資源)

解決方案:

  1. 防火墻
  2. 交換機(路由器)
  3. 流量清洗

1.2 跨站腳本攻擊(xss)

  • 原理:將跨站腳本注入到被攻擊的網頁上,用戶打開網頁會執行跨站腳本。

解決方案: 1. 輸入過濾(轉義) 2. 輸出過濾(轉義)

1.3 SQL注入

‘;update user set money=99999 where id=10025’

select *from user where user_name=';update user set money=99999 where id=10025'

解決方案: 輸入過濾(轉義) 數據庫安全策略

1.4 跨站請求偽造(csrf)

假如你剛登錄銀行網站不久,cookie還沒過期,黑客利用小廣告之類讓你點擊,然后請求在程序中請求轉賬接口

解決方案:

  1. 驗證referer字段
  2. 在請求地址添加token并驗證

1.5 HTTPS 中間人攻擊

黑客在電腦上安裝偽造的證書,攔截客戶端的請求

2 同源策略

2.1 定義

  • 禁止一個源(origin)的腳本&文檔和另一個源的腳本&文檔交互
    • 兩個URL的protocol,port和host相同,那么同源
    • 思考:如果兩個源產生過多交換有什么問題?
    • 思考:

    • 為什么不禁用不同源的js?
    • 因為有時候需要把js放到cdn上,那么可能就不同源了,所以行不通。

    • 應不應該允許不同源的js修改dom?
    • 允許

    • 應不應該允許網站提交數據到不同源的的服務器?
    • 不允許

    • 應不應該允許網站提交cookie到不同源的服務器?
    • 不允許

      2.2 跨域的N種方法

      1.JSONP
    • 利用不限制跨越腳本執行的特點
    •  // 服務端數據(data.js)jsonp("example",{a:1,b:2})// index.htmlfunction jsonp () {console.log(topic,data)}// 加載跨域數據腳本var script = document.createElement('script')script.setAttribute('src','data.js')document.getElementdByTagName('head')[0].appendChild(script)
      

      思考

    • jsonp可以用來提交數據嗎?
    • 可以在url上,但只能get請求;服務端可以通過判斷返回不同的腳本

    • 嘗試為fetch函數擴展jsonp功能
    • fetch(<jsonp-url>,{method: 'jsonp'}).then(data=>{console.log(data)})
      
      2. 跨域資源共用?重要
    • 跨域資源共用(Cross-Origin Resource Sharing)使用額外HTTP頭允許指定的源和另一個源進行交互 服務端設置 Access-control-Allow-Origin:https://a.com
    • get、post我們稱之為簡單請求,簡單請求在同源策略中會簡單的處理,如果b.com返回了這個頭Access-control-Allow-Origin:https://a.com,那么我們認為 這個請求是可以通過的。
    • 預檢

      但是還有復雜一點的請求,我們需要先發OPTIONS請求,a.com想請求b.com它需要發一個自定義的Headers:X-ABC和content-type,這個時候就不是簡單請求了, a.com要給b.com 發一個options請求,它其實在問b.com我用post行不行,還想在Headers中帶X-ABC和content-type;并不是所有的headers都發這個OPTIONS請求,因為X-ABC是自定義的,所以需要發;b.com看到OPTIONS請求,先不會返回數據,先檢查自己的策略,看看能不能支持這次請求,如果支持就返回200。

      OPTIONS請求返回以下報文

      HTTP/2.0 20 OK
      Access-Control-Allow-Origin:https://a.com
      Access-Control-Allow-Methods:POST,GET,OPTIONS
      Access-Control-Allow-Headers:X-ABC,Content-TypeAccess-Control-Max-Age:86400 // 告訴瀏覽器這個策略生效時間為一個小時,在一個小時之內發送類似的請求,不用在問服務端了,相當于緩存了
      

      瀏覽器收到了OPTIONS的返回,會在發一次,這一次才是真正的請求數據,這次headers會帶上X-ABC、contentType。

      整體的過程cors將請求分為2種,簡單請求和復雜請求,需不需要發送OPTIONS瀏覽器說的算,瀏覽器判斷是簡單請求還是復雜請求,cors是非常廣泛的跨域手段 這里的缺點是OPTIONS請求也是一次請求,消耗帶寬,真正的請求也會延遲。

      3.反向代理?重要
    • 因為跨越是瀏覽器的限制,所以可以用同源的服務器去代理請求,代理服務使鏈路變的更長。

      3 實戰-CORS(fetch+node.js)

    • 觀察node.js在服務端的實現CORS跨域
    • 觀察瀏覽器器fetch的使用方法
    • 觀察OPTIONS預檢請求
    • 項目地址:/examples/computerNetwork/3.2

    • 用express起2個服務
    • const express = require('express');
      const app1 = express();app1.get('/',function(req,res){res.send('hello')
      })app1.listen(3000)const app2 = express()
      app2.get('/api',function(req,res){res.send('go')
      })app2.post('/api',function(req,res){res.send('go')
      })
      app2.listen(3001)
      

      啟動node服務 nodeman cors.js

    • whislte做代理
    •     npm i whistle -g # 下載,mac電腦:sudo npm i whistle -g whistle start # 啟動http://localhost:8899/ # 瀏覽器查看SwitchOmega # 谷歌代理插件,可以配置127.0.0.1:8899的服務上
      

      配置whislte進行代理的域名

    • 谷歌代理插件SwitchOmega,配置代理服務器127.0.0.1:8899的服務

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/165091.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/165091.shtml
英文地址,請注明出處:http://en.pswp.cn/news/165091.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

人工智能對網絡安全的影響越來越大

如果問當前IT行業最熱門的話題是什么&#xff0c;很少有人會回答除了人工智能&#xff08;AI&#xff09;之外的任何話題。 在不到 12 個月的時間里&#xff0c;人工智能已經從一項只有 IT 專業人員才能理解的技術發展成為從小學生到作家、程序員和藝術家的每個人都使用的工具…

MySQL索引事務基礎

目錄 1. 索引 1.1索引的概念 1.2索引的特點 1.3 索引的使用場景 1.4索引的使用 1.4.1查看索引 1.4.2創建索引 1.4.3刪除索引 1.5索引保存的數據結構 2.事務 2.1經典例子 2.2事務的概念 2.3事務的使用 2.4事務的4個核心特性 2.5事務的并發問題 2.5.1臟讀 2.5.2不可…

Python + Docker 還是 Rust + WebAssembly?

在不斷發展的技術世界中&#xff0c;由大語言模型驅動的應用程序&#xff0c;通常被稱為“LLM 應用”&#xff0c;已成為各種行業技術創新背后的驅動力。隨著這些應用程序的普及&#xff0c;用戶需求的大量涌入對底層基礎設施的性能、安全性和可靠性提出了新的挑戰。 Python 和…

Java項目如何打包成Jar(最簡單)

最簡單的辦法&#xff0c;使用Maven插件&#xff08;idea自帶&#xff09; 1.選擇需要打包的mudule&#xff0c;點擊idea右側的maven插件 2.clean操作 3.選擇需要的其他mudule&#xff0c;進行install操作&#xff08;如果有&#xff09; 4.再次選擇需要打包的module&#…

Vue.observable 是什么

Observable 翻譯過來我們可以理解成可觀察的 Vue.js2.6 新增 Vue.observable&#xff0c;讓一個對象變成響應式數據。Vue 內部會用它來處理 data 函數返回的對象 。 返回的對象可以直接用于渲染函數和計算屬性內&#xff0c;并且會在發生變更時觸發相應的更新。也可以作為最小化…

Git的指令

Git 各平臺安裝包下載地址為&#xff1a;http://git-scm.com/downloads Ubuntu Git 安裝命令為&#xff1a; $ apt-get install git用戶信息 配置個人的用戶名稱和電子郵件地址&#xff1a; $ git config --global user.name "runoob" $ git config --global user.…

Python----類對象和實例對象

目錄 一.類和類的實例 二.類屬性和實例屬性 三.私有屬性和公有屬性 四.靜態方法和類方法 五.__init__方法&#xff0c;__new__方法和__del__方法&#xff1a; 六.私有方法和公有方法 七.方法的重載 八.方法的繼承 九.方法的重寫 十.對象的特殊方法 十一.對象的引用&a…

軟件開發模式開源和閉源的優劣之爭

開源和閉源&#xff0c;兩種截然不同的開發模式&#xff0c;對于大模型的發展有著重要影響。開源讓技術共享&#xff0c;吸引了眾多人才加入&#xff0c;推動了大模的創新。而閉源則保護了商業利益和技術優勢&#xff0c;為大模型的商業應用提供了更好的保障。 開源與閉源軟件的…

基于命令行模式設計退款請求處理

前言 這篇文章的業務背景是基于我的另一篇文章: 對接蘋果支付退款退單接口-CSDN博客 然后就是說設計模式是很開放的東西,可能我覺得合適,你可能覺得不合適,這里只是做下討論,沒有一定要各位同意的意思.... 相關圖文件 這里我先把相關的圖文件放上來,可能看著會比較清晰點 代碼邏…

sql之left join、right join、inner join的區別

sql之left join、right join、inner join的區別 left join(左聯接) 返回包括左表中的所有記錄和右表中聯結字段相等的記錄 right join(右聯接) 返回包括右表中的所有記錄和左表中聯結字段相等的記錄 inner join(等值連接) 只返回兩個表中聯結字段相等的行 舉例如下&#xff1…

Web服務器(go net/http) 處理Get、Post請求

大家好 我是寸鐵&#x1f44a; 總結了一篇Go Web服務器(go net/http) 處理Get、Post請求的文章? 喜歡的小伙伴可以點點關注 &#x1f49d; 前言 go http請求如何編寫簡單的函數去拿到前端的請求(Get和Post) 服務器(后端)接收到請求后&#xff0c;又是怎么處理請求&#xff0c…

【限時免費】20天拿下華為OD筆試之【前綴和】2023B-尋找連續區間【歐弟算法】全網注釋最詳細分類最全的華為OD真題題解

文章目錄 題目描述與示例題目描述輸入描述輸出描述示例一輸入輸出說明 示例二輸入輸出 解題思路代碼PythonJavaC時空復雜度 華為OD算法/大廠面試高頻題算法練習沖刺訓練 題目描述與示例 題目描述 給定一個含有N個正整數的數組&#xff0c;求出有多少個連續區間&#xff08;包…

【網絡奇緣】- 計算機網絡|分層結構|ISO模型

&#x1f308;個人主頁: Aileen_0v0&#x1f525;系列專欄: 一見傾心,再見傾城 --- 計算機網絡~&#x1f4ab;個人格言:"沒有羅馬,那就自己創造羅馬~" 目錄 計算機網絡分層結構 OSI參考模型 OSI模型起源 失敗原因: OSI模型組成 協議的作用 &#x1f4dd;全文…

二十四、RestClient操作文檔

目錄 一、新增文檔 1、編寫測試代碼 二、查詢文檔 1、編寫測試代碼 三、刪除文檔 1、編寫測試代碼 四、修改文檔 1、編寫測試代碼 五、批量導入文檔 批量查詢 一、新增文檔 1、編寫測試代碼 SpringBootTest public class HotelDocumentTest {private RestHighLevelC…

【棧】不同字符的最小子序列

題目&#xff1a; /*** 思路&#xff1a;棧,使用數組記錄每個字母出現的次數&#xff0c;再用一個數組標記字符是否在棧中* 遍歷棧&#xff0c;存儲字符時比較棧頂字符&#xff0c;若小于棧頂字符并且后面有重復的字符則* 棧頂元素出棧&#xff0c;否則入棧。** au…

PS 注釋工具 基礎使用方法講解

好 上文PS 顏色取樣器&標尺工具 基本使用講解中 我們講了 顏色取樣器和標尺工具的基本用法 下面我們來看一下 注釋工具 這個 主要是后面 比較大的作品 可能不是我們一個人取設計 團隊作圖 就需要用到它 選擇 注釋工具 后 我們隨便點擊圖像任何一個位置 右側就會出現一個輸…

gitlab各版本安裝注意點:

研發團隊在安裝gitlab各版本過程中可能遇到各種問題&#xff0c;為了后續容易查看特將我們在實踐過程中遇到的各類問題要點總結如下&#xff1a; gitlab 10.8.3 (564c342&#xff09;安裝 centos Linux yum安裝網址查找網址&#xff1a;gitlab/gitlab-ce - Results for gitla…

執行shell腳本提示syntax error: unexpected end of file

具體報錯如下&#xff1a; ./test.sh: line 36: syntax error: unexpected end of file執行命令時需將test.sh替換為實際的腳本文件名稱。 情形一&#xff1a; shell腳本在Windows下編寫&#xff0c;上傳到Linux上執行&#xff0c;由于 fileformat 類型不同&#xff0c;所以報…

黑馬點評12-實現好友關注/取關功能,查看好友共同關注列表

好友關注 數據模型 數據庫中的tb_follow記錄博主與粉絲的關系 tb_follow表對應的實體類 Data EqualsAndHashCode(callSuper false) Accessors(chain true) TableName("tb_follow") public class Follow implements Serializable {private static final long ser…

代碼隨想錄算法訓練營第三十二天| 122 買賣股票的最佳時機 || 55 跳躍游戲 45 跳躍游戲 ||

目錄 122 買賣股票的最佳時機 || 55 跳躍游戲 45 跳躍游戲 || 122 買賣股票的最佳時機 || 設置變量now代表此時買入的股票&#xff0c;為賦值為Integer.MAX_VALUE&#xff0c;遍歷prices數組&#xff0c;有如下兩種情況&#xff1a; 如果比now小說明不能售出&#xff0c;可以…