Web开发安全基础知识

本文介绍了Web开发中的三大常见安全威胁:SQL Injection、XXS和CSRF。SQL Injection防范方法包括使用参数化查询和过滤特殊字符。XXS攻击可以通过过滤特殊字符来防御。对于CSRF,可以通过检查Referer字段或添加token效检来防止攻击。了解这些基础知识对于确保Web应用安全至关重要。
摘要由CSDN通过智能技术生成

关于Web开发安全是Web开发最基础的也是最容易忽略的。一旦忽视就很容造成很大的损失。

常见的Web安全方面主要是:
1. SQL Injection
2. XXS (cross-site scripting)
3. CSRF (cross-site request forgeries)

这是最常见的三种攻击手段。

SQL Injection

SQL攻击(英语:SQL injection),简称注入攻击,是发生于应用程序之数据库层的安全漏洞。简而言之,是在输入的字符串之中注入SQL指令,在设计不良的程序当中忽略了检查,那么这些注入进去的指令就会被数据库服务器误认为是正常的SQL指令而运行,因此遭到破坏或是入侵。 维基百科

避免方法
  1. 在设计应用程序时,完全使用参数化查询(Parameterized Query)来设计数据库访问功能
  2. 在组合SQL字符串时,先针对传入的参数做字符取代(将单引号字符取代为连续两个单引号字符)。
  3. 其他,使用其他更加安全的方式连接数据库。
  4. 使用SQL防注入系统

额外说明

什么是参数化查询

参数化查询(Parameterized Query 或 Paramterized Statement) 是指在设计与数据库链接并访问数据时,在需要填入数值或数据的地方,使用参数来给值,这个方法目前已被视为最有效可预防SQL注入攻击手法的防御方式。

除了安全因素外,相比拼接字符串的SQL语句,参数化的查询往往有性能优势。因为参数化的查询能让不同的数据通过参数到达数据库,从而公用同一条SQL语句。大多数数据库会缓存解析SQL语句产生的字节码而节省下重复解析的开销。如果采取凭借字符串的SQL语句,则会由于操作数据是SQL语句的一部分而非参数的一部分,而反复大量解释SQL语句产生不必要的开销。

原理
在使用参数化查询的情况下,数据库服务器不会将参数的内容视为SQL指令的一部分来处理,而是在数据库完成SQL指令编译后,才套用参数运行,因为就算参数中具有破坏性的指令,也不会被数据库所运行。

Mysql SQL指令撰写方法

set
  • 0
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值