基础知识"/>
Web开发安全基础知识
关于Web开发安全是Web开发最基础的也是最容易忽略的。一旦忽视就很容造成很大的损失。
常见的Web安全方面主要是:
1. SQL Injection
2. XXS (cross-site scripting)
3. CSRF (cross-site request forgeries)
这是最常见的三种攻击手段。
SQL Injection
SQL攻击(英语:SQL injection),简称注入攻击,是发生于应用程序之数据库层的安全漏洞。简而言之,是在输入的字符串之中注入SQL指令,在设计不良的程序当中忽略了检查,那么这些注入进去的指令就会被数据库服务器误认为是正常的SQL指令而运行,因此遭到破坏或是入侵。 维基百科
避免方法
- 在设计应用程序时,完全使用参数化查询(Parameterized Query)来设计数据库访问功能
- 在组合SQL字符串时,先针对传入的参数做字符取代(将单引号字符取代为连续两个单引号字符)。
- 其他,使用其他更加安全的方式连接数据库。
- 使用SQL防注入系统
额外说明
什么是参数化查询
参数化查询(Parameterized Query 或 Paramterized Statement) 是指在设计与数据库链接并访问数据时,在需要填入数值或数据的地方,使用参数来给值,这个方法目前已被视为最有效可预防SQL注入攻击手法的防御方式。
除了安全因素外,相比拼接字符串的SQL语句,参数化的查询往往有性能优势。因为参数化的查询能让不同的数据通过参数到达数据库,从而公用同一条SQL语句。大多数数据库会缓存解析SQL语句产生的字节码而节省下重复解析的开销。如果采取凭借字符串的SQL语句,则会由于操作数据是SQL语句的一部分而非参数的一部分,而反复大量解释SQL语句产生不必要的开销。
原理
在使用参数化查询的情况下,数据库服务器不会将参数的内容视为SQL指令的一部分来处理,而是在数据库完成SQL指令编译后,才套用参数运行,因为就算参数中具有破坏性的指令,也不会被数据库所运行。
Mysql SQL指令撰写方法
set @c1
更多推荐
Web开发安全基础知识
发布评论