Web 安全简明入门指南

本文转载自微信公众号“前端先锋”(jingchengyideng)。

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

常见 Web 信息安全

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

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

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

1. SQL注入

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

  1. // “--” 是 SQL 语句的注释符号 
  2. /user/profile?id=1";DROP TABLE user-- 
  3.  
  4. SELECT * FROM USER WHERE id = "1"; DROP TABLE user-- 

用户登录:

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

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

2. XSS(Cross-Site Scripting)

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

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

简易的防范手段方式:不信任用户输入的任何资料,将所有输入内容编码并过滤。

3. CSRF

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

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

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

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

  1. <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)等。

简易的防范手段:

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

5. 文件上传漏洞

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

简单的防范手段:

(1) 阻止非法文件上传

  • 设定文件名白名单
  • 判断文件标头

(2) 阻止非法文件执行

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

(3) 加密安全

6. 加密安全

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

  1. sha3(salt + gap + password) 

简单的入侵流程:

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

总结

随着网络技术的发展,信息安全会越来越重要,当有系统上线时,最好按照《信息安全检查清单》

(https://github.com/FallibleInc/security-guide-for-developers/blob/master/security-checklist.md)检查一下有哪些安全事项是被你忽略掉的。

 

文章来源网络,作者:运维,如若转载,请注明出处:https://shuyeidc.com/wp/152275.html<

(0)
运维的头像运维
上一篇2025-03-13 22:34
下一篇 2025-03-13 22:35

相关推荐

  • 个人主题怎么制作?

    制作个人主题是一个将个人风格、兴趣或专业领域转化为视觉化或结构化内容的过程,无论是用于个人博客、作品集、社交媒体账号还是品牌形象,核心都是围绕“个人特色”展开,以下从定位、内容规划、视觉设计、技术实现四个维度,详细拆解制作个人主题的完整流程,明确主题定位:找到个人特色的核心主题定位是所有工作的起点,需要先回答……

    2025-11-20
    0
  • 社群营销管理关键是什么?

    社群营销的核心在于通过建立有温度、有价值、有归属感的社群,实现用户留存、转化和品牌传播,其管理需贯穿“目标定位-内容运营-用户互动-数据驱动-风险控制”全流程,以下从五个维度展开详细说明:明确社群定位与目标社群管理的首要任务是精准定位,需明确社群的核心价值(如行业交流、产品使用指导、兴趣分享等)、目标用户画像……

    2025-11-20
    0
  • 香港公司网站备案需要什么材料?

    香港公司进行网站备案是一个涉及多部门协调、流程相对严谨的过程,尤其需兼顾中国内地与香港两地的监管要求,由于香港公司注册地与中国内地不同,其网站若主要服务内地用户或使用内地服务器,需根据服务器位置、网站内容性质等,选择对应的备案路径(如工信部ICP备案或公安备案),以下从备案主体资格、流程步骤、材料准备、注意事项……

    2025-11-20
    0
  • 如何企业上云推广

    企业上云已成为数字化转型的核心战略,但推广过程中需结合行业特性、企业痛点与市场需求,构建系统性、多维度的推广体系,以下从市场定位、策略设计、执行落地及效果优化四个维度,详细拆解企业上云推广的实践路径,精准定位:明确目标企业与核心价值企业上云并非“一刀切”的方案,需先锁定目标客户群体,提炼差异化价值主张,客户分层……

    2025-11-20
    0
  • PS设计搜索框的实用技巧有哪些?

    在PS中设计一个美观且功能性的搜索框需要结合创意构思、视觉设计和用户体验考量,以下从设计思路、制作步骤、细节优化及交互预览等方面详细说明,帮助打造符合需求的搜索框,设计前的规划明确使用场景:根据网站或APP的整体风格确定搜索框的调性,例如极简风适合细线条和纯色,科技感适合渐变和发光效果,电商类则可能需要突出搜索……

    2025-11-20
    0

发表回复

您的邮箱地址不会被公开。必填项已用 * 标注