Web 安全简明入门指南

Web 安全已经是 Web 开发中一个重要的组成部分,而许多程序猿往往希望专注于程序的实现,而忽略了信息安全的实质。如果没有严谨地考虑到信息安全问题,等出了乱子之后反而会造成更严重的损失。所以要在开发网络应用时更注重 Web 安全,甚至努力成为一个白帽子黑客。

常见 Web 信息安全

一般来说 Web 安全需要符合三点安全要素:

  1. 保密性:通过加密等方法确保数据的保密性
  2. 完整性:要求用户取得的资料是完整而不可被篡改的
  3. 可用性:保证网站服务的持续可访问性

以下是常见的影响 Web 安全的攻击手段:

1. SQL注入

使用恶意的 SQL 语法去影响数据库内容:

// “--” 是 SQL 语句的注释符号
/user/profile?id=1";DROP TABLE user--

SELECT * FROM USER WHERE id = "1"; DROP TABLE user--

用户登录:

// password" AND 1=1-- 
SELECT * FROM USER WHERE username = "Mark"; AND 1=1-- AND PASSWORD="1234"

简单的防范手段:

不信任用户输入的数据,确保用户输入必须经过检查,目前许多成熟的 Web 框架都支持ORM 服务,大部分都基本防范了 SQL 注入。

2. XSS(Cross-Site Scripting)

XSS 也很容易将恶意代码植入到网页,让看到网页的用户受到干扰,常见的重灾区包括BBS、留言板等。实际上 XSS 的概念很简单,通过表单输入建立一些恶意网址、恶意图片网址或把 JavsScript 代码注入到 HTML中,当用户浏览页面时就会被触发。

<IMG SRC=""onerror="alert('XSS')">

更多关于XSS资料可以参考 XSS Filter Evasion Cheat Sheet【https://www.owasp.org/index.php/XSS_Filter_Evasion_Cheat_Sheet】。另外也有中文版(链接是乌云镜像备份,顺便怀念一下)【https://wooyun.js.org/drops/XSS%20Filter%20Evasion%20Cheat%20Sheet%20%E4%B8%AD%E6%96%87%E7%89%88.html】

简易的防范手段方式:

不信任用户输入的任何资料,将所有输入内容编码并过滤。

3. CSRF

CSRF 跨站请求伪造又被称为 one-click attack 或者 session riding,通常缩写为CSRF 或 XSRF。在已登录的 Web 应用上执行非本意的操作的攻击方法。

举一个例子:假如一家银行执行转帐操作的 URL 地址如下:

http://www.examplebank.com/withdraw?account=AccoutName&amount=10000&for=PayeeName

那么,一个恶意攻击者可以在另一个网站上放置如下代码:

<img src="http://www.examplebank.com/withdraw?account=Mark&amount=10000&for=Bob">

如果用户的登录信息尚未过期的话,就会损失 10000 元。

简单的防范手段:

  1. 检查 Referer 头字段 这是比较基本的验证方式,通常 HTTP 头中有一个 Referer 字段,它的值应该和请求位置在同一个域下,因此可以通过验证网址是否相同来验证是不是恶意请求,但是有被伪造的可能。
  2. 添加验证 token 现在许多 Web 框架都提供在表单加入由服务器生成的随机验证 CSRF 的代码,可以辅助防止 CSRF 攻击。

4. DoS

DoS 攻击具体可以分为两种形式:带宽消耗型以及资源消耗型,它们都是通过大量合法或伪造的请求大量消耗网络以及硬件资源,以达到瘫痪网络和系统的目的。

带宽消耗型又分为分布式拒绝服务攻击和放大攻击:分布式拒绝服务攻击的特点是利用僵尸网络向受害者的服务器发送大量流量,目的在于占用其带宽。放大攻击和分布式拒绝服务攻击类似,是通过恶意放大流量限制受害者系统的带宽;其特点是利用僵尸网络通过伪造的源 IP(即攻击目标)向某些存在漏洞的服务器发送请求,服务器在处理请求后向伪造的源 IP 传送应答包,由于这些服务的特殊性导致应答包比请求包更大,因此只使用少量的带宽就可以使服务器器传送大量的响应到目标主机上。

资源消耗型又分为协议分析攻击(SYN Flood)、LAND攻击、CC攻击、僵尸网络攻击,应用程序级洪水攻击(Application level floods)等。

简易的防范手段:

  1. 防火墙 设定规则阻挡简单攻击
  2. 交换机 大多交换机都有限制访问的控制功能
  3. 路由器 大多交换机都有限制访问的控制功能
  4. 黑洞启动 将请求转发到不存在的位置

5.文件上传漏洞

许多 web 应用都允许用户把文件上传到服务器,由于我们不知道用户会上传什么类型的文件,如果不加注意的话就会引发很大的问题。

简单的防范手段:

  1. 阻止非法文件上传

    • 设定文件名白名单
    • 判断文件标头
  2. 阻止非法文件执行

    • 存储目录与 Web 应用分离
    • 存储目录无执行权限
    • 文件重命名
    • 图片压缩
  3. 加密安全

6. 加密安全

大多数网站都会提供会员注册的功能,要注意不要将密码的明文存入数据库。要如果你所登陆的网站在你忘记密码时,取回口令的功能会把密码明文发到你的邮箱,那么这个网站十有八九是没有做加密或者是用的是可逆加密算法。这时你的密码很容易会出现在“我的密码没加密”(http://plainpass.com/)这个网站上。不过即使将密码加密也未必安全,网上存在大量的破解网站(http://www.cmd5.com/),使用彩虹表就可以破解加密的密码。所以一般会针对不同用户使用随机产生的 salt 字符串加盐只后再进行加密的方式来提高密码的强健性。

sha3(salt + gap + password)

简单的入侵流程

  1. 侦查(Reconnaissance) 攻击者准备攻击之前进行的调查行为,使用搜索引擎或社工手段寻找目标的相关信息,方便之后的攻击
  2. 扫描(Scanning) 扫描目标主机的弱点,获取服务器操作系统、服务和运行状况等相关信息
  3. 获取权限(Gaining Access) 利用系统弱点获得服务器权限
  4. 维护权限(Maintaining Access) 维护当前获取到的权限,以便日后再次操作
  5. 清除痕迹(Clearing Tracks) 清除入侵的痕迹

     如果你对网络安全感兴趣,学习资源免费分享,保证100%免费!!!(黑客入门教程)

如果你对网络安全入门感兴趣,那么你需要的话可以

点击这里👉CSDN大礼包:《黑客&网络安全入门&进阶学习资源包》免费分享

如果你想要先掌握python,那么你需要的话可以 👉Python学习路线(2023修正版)附涉及资料

 👉网安(黑客)全套学习视频👈
我们在看视频学习的时候,不能光动眼动脑不动手,比较科学的学习方法是在理解之后运用它们,这时候练手项目就很适合了。
在这里插入图片描述

在这里插入图片描述

👉网安(黑客红蓝对抗)所有方向的学习路线👈
对于从来没有接触过网络安全的同学,我们帮你准备了详细的学习成长路线图。可以说是最科学最系统的学习路线,大家跟着这个大的方向学习准没问题。
在这里插入图片描述

👉黑客必备开发工具👈
工欲善其事必先利其器。学习黑客常用的开发软件都在这里了,给大家节省了很多时间。

这份完整版的网络安全(黑客)全套学习资料已经上传至CSDN官方,朋友们如果需要点击下方链接也可扫描下方微信二v码获取网络工程师全套资料【保证100%免费】 

在这里插入图片描述​ 如果你有需要可以点击👉CSDN大礼包:《黑客&网络安全入门&进阶学习资源包》免费分享

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值