android 访问服务器sql_XSS 攻击、CSRF 攻击、SQL 注入、流量劫持(DNS 劫持、HTTP 劫持)—— 浏览器安全

673675579af06637823836555fd23373.png

今天看了 jsliang 大佬关于网络安全的文章,为了加深一下印象,自己动手写一下。
主要参考文章:网络安全 ——— jsliang
XSS攻击
XSS(Cross Site Script)跨站脚本攻击,指的是向网页注入恶意代码,并对网页进行篡改。在用户浏览时,从而获取用户隐私数据的一种攻击方式。一般为 JavaScript 。

  • 窃取 Cookie 信息,模拟用户进行登录,然后进行转账等操作
  • 使用 addEventListener 监听用户行为,监听键盘事件,窃取用户的银行卡密码等。并发送到攻击者的服务器
  • 通过修改 DOM 伪造假的登录窗口,欺骗用户输入用户名和密码等
  • 生成浮窗广告等
  • 修改 URL 跳转到恶意网站
  • ....

防御 :

  • 输入检查:对输入内容中的 script 和 iframe 等标签进行转义或者过滤
  • 设置 httpOnly(后端): 设置此属性可防止 JavaScript 获取 Cookie, 只能在 HTTP请求过程中使用 Cookie
  • 开启 CSP 白名单 :即开启白名单,可以阻止白名单意外的资源加载和运行 (参考:web安全csp白名单的弊端、开启CSP网页安全政策防止XSS攻击)

CSRF攻击
CSRF(Cross—Site Request Forgery) 跨站请求伪造。简单说一下自己的理解,不对的地方请指正。CSRF攻击主要是利用用户登陆过的网站生成的Cookie,也就是这个用户的凭证,操控用户,进行转账等有利于攻击者的行为。但并不是像XSS攻击一样窃取Cookie,攻击者不知道Cookie的内容,只是利用而已。 例子: 网站A为用户正常浏览的网站,网站B为攻击者的恶意网站。假设用户已经登录网站A获取到了Cookie,这时候用户打开网站B,这时候网站B运行恶意代码,请求访问网站A或者说网站A某个api(例如网站A的转账api),通常是在用户不知情的情况下。
防御:

  • 验证 Token:浏览器请求服务器时,服务器返回一个 token,之后每个请求都需要同时带上 token 和 Cookie 才会被认为是合法请求
  • 验证 Referer:通过验证请求头的 Referer 来验证来源站点,但请求头很容易伪造
  • 设置 SameSite:设置 Cookie 的 SameSite,可以让 Cookie 不随跨站请求发出,但浏览器兼容不一

具体实现和原理参考:CSRF攻击与防御
SQL注入
主要是通过往输入框里面输入 SQL语句,利用 SQL的语法识别机制,从而修改数据库实际上运行的SQL语句,以达到攻击者的目的
例如: (假设前端没有做用户名和密码的校验) 用户输入的用户名:Kite OR '1 = 1'-- 用户输入的密码:123456
预想执行的SQL语句:SELECT * FROM user WHERE username='Kite' AND psw='123456'
实际执行的SQL语句:SELECT * FROM user WHERE username='Kite' OR 1 = 1 --' AND psw='xxxx'
"--":是SQL的注释代码。也就是说 1 = 1 后面的代码无效。 结果就变成无论输入的用户名和密码是否正确,都可以登录。因为 1 = 1 肯定是为 true 。
防御:

  • 通过正则验证用户输入的内容是否包含引起隐患的字符
  • 一般由后端来处理。

流量劫持
DNS 劫持
建过站点的朋友应该都知道,需要域名解析,不然无法通过自己购买的域名访问自己的服务器。域名解析,也就是通过 DNS 服务器实现域名和服务器IP的映射,例如 http://kite1874.com 对应的 IP 为 127.0.0.1。你访问 http://kite1874.com 的时候,实际访问的是 127.0.0.1 这个IP地址对应的服务器。实际上输入 127.0.0.1 也可以正常访问站点。之所以需要使用域名进行访问,是为了方便记忆和SEO
DNS劫持,也就是通过篡改域名映射的IP,导致用户访问的网站,变成攻击者准备的恶意网站。
例如:

  • 篡改路由器 DNS 配置。
  • 篡改 Hosts 文件貌似也可以做到(自己脑补的)
  • 网络供应商可以修改,如果有意这样做的话。
  • ...

HTTP 劫持
大家都知道,HTTP 请求是明文的。而 HTTP 劫持主要是篡改请求的内容。例如:你打开一个网页,请求返回一个HTML文件,然后有意者修改这个HTML,往里面插了个小广告,然后再返回给你。广告还算小事,要是返回一个表单让你输入账号密码呢?你全然不知,还以为这是原来网站上的表单呢
防御:

  • HTTP 传输是明文,所以需要给它加密。也就是 HTTPS 协议。需要申请 SSL 证书。

来自阿怪自己的博客 —— XSS攻击、CSRF攻击、SQL注入、流量劫持(DNS劫持、HTTP劫持)—— 浏览器安全 - 阿怪的小破站

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/505100.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

simulink和psim仿真结果不同_在HFSS进行AC耦合电容仿真优化怎么做?

AC耦合电容,也叫DC blocking隔直电容,在几乎所有的高速串行链路中,都可以看到它的身影,它的主要作用是去掉信号中的直流偏置分量,同时让高频分量可以顺利通过,类似于一个高宽带的滤波器。由于电容的焊盘通常…

民生银行 一码付 php,PHP开心码支付免签约第四方支付平台源码修复版

源码说明后台号码admin后台密码123456声明:该源码仅供学习出现,修复者不承担任何责任,下载安装即代表使用者自行承担责任源码安装方法需要服务器开启g11插件PHP5.6,主机用户推荐95云主机,因为已经开启所有扩展插件必须…

oracle主从表分离怎么实时更新数据_高可用数据库UDB主从复制延时的解决

MySQL主从复制的延时一直是业界困扰已久的问题。延时的出现会降低主从读写分离的价值,不利于数据实时性较高的业务使用MySQL。UDB是UCloud推出的云数据库服务,上线已达六年,运营了数以万计的UDB MySQL实例。除了提供高可用、高性能、便捷易用…

vp翻N_VP刀叨叨:如何让G胖给你唱生日歌

VS看起来好凶喵▼ESL欧洲&独联体区VP发推庆祝击败OG昨晚第九个比赛日,OG与VP的比赛无疑是大家关注的焦点,一边是TI双冠王,一边是状态开始回升的俄罗斯毛熊,大家都很期待他们能给我们带来精彩的比赛。不过比赛结果却出乎了不少…

秒后面的单位是什么_为什么兰州马拉松很难跑出好成绩?

如果要评选中国最难PB的马拉松,西北第一马兰州马拉松当之无愧可以排名第一。为什么这么说呢?先来看下今年兰马的一组数据,不管是精英选手还是大众选手,成绩都要比个人PB慢。国内男子冠军是管油胜,成绩为2小时18分58秒&…

surface php老是用不了,surface pro7触摸屏没反应怎么办

发生该问题的原因可能是:有很多可能原因,从校准到硬件或者固件。故障排查可以找到根本原因。1. 清洁屏幕将柔软的无绒布蘸上水或眼镜清洗液来清洁屏幕,但不要直接在屏幕上喷洒液体。2. 重启 Surface注意:你将需要连接键盘或鼠标到…

小优优(u盘歌曲顺序调整)_电脑从U盘启动,这三种方式你知道吗?

Windows 可以运行在数千台不同配置的电脑上, 但安装 Windows 10又是另一回事, 具体取决于你的电脑是否安装了现有的 Windows 10,以及早期版本,像是 Windows7, Windows XP, 或完全不同的操作系统(如 macOS 或 Linux)。大多数情况, 安装系统都依赖于主硬盘HDD或SSD以外的设备启动…

unity vs没有智能提示_Unity博主营地你不可不知的Unity C#代码小技巧

「Unity博主营地第一期」于2019年11月开启,现已收到数百篇原创投稿。每周根据Unity Connect社区反馈,帮助大家发现最优质、最干货、最受欢迎的博文作品。开门见山的说,这篇文章干到挤不出一点水分。文章主要针对Unity初学者,相信读…

python123数值运算_python123中 Hello World的条件输出 和数值运算

描述 获得用户输入的一个整数,参考该整数值,打印输出"Hello World",要求:‪‬‪‬‪‬‪‬‪‬‮‬‪‬‭‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‭‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‪‬‪‬‪…

苹果sf字体_苹果UI设计的改变意味着什么?

WWDC虽然已经过去了一段时间,虽然没有什么硬件产品,但还是给我们带来了许多新的惊喜。但我们这篇文章不谈技术问题,只谈苹果的UI变化。因为这可能是近10年来苹果第二次颠覆性的升级,上次还是2013年的iOS7的全面扁平化。从设计的层…

cuda卸载_Ubuntu18.04英伟达显卡驱动、Cuda安装

一、显卡驱动安装1. 准备工作禁用BIOS中的secure boot,因为此方法使用第三方源安装显卡驱动,不禁止secure boot会导致安装的驱动不能使用,禁用也不会有多大安全隐患。2. 禁用nouveau禁用nouveau,这是ubuntu默认使用的开源显卡驱动…

内存条能4+8混插吗?_笔记本内存条双通道提升有多大?实测FORESEE,你知道好处在哪吗...

不知道大家发现了没,最近存储类产品、内存条普遍价格都涨起来了,后悔年前没买内存条给我的暗夜精灵3升升级,至今还插着一根8G的条子,其实日常用也够了。不过,今年打算做做视频,搞搞线上直播,所以…

python计算期望值_机器学习:计算方差时为何除以n-1

小弟准备了数据结构、Java、大数据、AI、面试题、python等各种资料 需要领取等朋友麻烦 转发此文,然后私信【学习】即可获取设样本均值为​,样本方差为​,总体均值为​,总体方差为​,那么样本方差​有如下公式&#xf…

程序的图标无法改变_安卓微信7.0.7内测版发布,细节更新,小程序功能优化

昨天,微信 7.0.7 for Android 内测版悄然发布,如何参加内测可以咨询本人。按照近来的惯例,安卓的内测版的功能会在随后的更新iOS正式版中体现,并且要先于安卓正式版发布。下面我们就来简单介绍一下本次更新的具体内容。一、「…」…

linux设置系统自动开机,Linux系统中设置开机自动运行的两种方法

有时可能会需要在重启时或者每次系统启动时运行某些命令或者脚本。我们要怎样做呢?本文中我们就对此进行讨论。 我们会用两种方法来描述如何在 CentOS/RHEL 以及 Ubuntu 系统上做到重启或者系统启动时执行命令和脚本。 两种方法都通过了测试。方法 1 – 使用 rc.loc…

论文页眉奇偶页不同怎么设置_怎样设置Word页眉页脚奇偶页不同?

来自Excel之家,侵联系删有伙伴问,怎么设置满足下列要求的页眉页脚:页眉要求正文部分偶数页居中对齐为“XXXX毕业设计(论文)”,奇数页居中对齐是各章章名;字体采用宋体5号。页眉之下有一条下划线。封面和目录页没有页眉…

如何检测python是否安装_使用Python检查系统中是否安装了一个软件包?

How can I check is some package is installed in my system. My system is Linux, but even better if it could works in other OSs. I mean OS specific package (like could be *.rpm or *.deb). Is there any python module or script that could do it? 解决方案 To fi…

android 自定义控件的宽高_巧用Handler获取View控件信息

众所周知,在Android实际开发中,对于某些复杂多变的情况,控件的位置摆放、大小控制并非是xml类型的layout文件完全可以搞定的。此时,我们通常会使用Java代码来通过动态计算,将指定的控件摆放在相应的位置,并…

如何ping端口_干货 | 如何正确处理常见的8大网络故障

网络故障是最容易出现的,也是比较难解决的问题,尤其是经常跟电脑及交换机打交道的朋友。今天就和大家来说说日常工作中,常见的网络故障详细分析及解决方法。交换机刚加电时网络无法通信【故障现象】交换机刚刚开启的时候无法连接至其他网络&a…

c语言程序设计第2章,C语言程序设计第2章 结构化程序设计与算法.ppt

C语言程序设计第2章 结构化程序设计与算法.ppt现在人们公认的具有“良好风格”的程序设计方法之一是所谓的“结构化程序设计方法”。其核心是规定了算法的三种基本结构顺序结构、选择结构和循环结构。按照结构化程序设计的观点,任何算法功能都可以通过三种基本程序结…