前端安全

1. SQL注入

1.1 概念:

通过 SQL 命令插入到 web 表单递交或输入域名或页面请求的查询字符串,最终达到欺骗服务器执行恶意的 SQL 命令。

1.2 原理:

SQL注射能使攻击者绕过认证机制,完全控制远程服务器上的数据库。 目前,大多数Web应用都使用SQL数据库来存放应用程序的数据。SQL语法允许数据库命令和用户数据混杂在一起的。,用户数据有可能被解释成命令, 这样的话,远程用户就不仅能向Web应用输入数据,而且还可以在数据库上执行任意命令了。

1.3 方式:

1.3.1 直接注入式攻击法

直接将代码插入到与SQL命令串联在一起并使得其以执行的用户输入变量。

1.3.2 间接的攻击法

将恶意代码注入要在表中存储或者作为原书据存储的字符串。在存储的字符串中会连接到一个动态的SQL命令中,以执行一些恶意的SQL代码。注入过程的工作方式是提前终止文本字符串,然后追加一个新的命令。如以直接注入式攻击为例。就是在用户输入变量的时候,先用一个分号结束当前的语句。然后再插入一个恶意SQL语句即可。由于插入的命令可能在执行前追加其他字符串,因此攻击者常常用注释标记“—”来终止注入的字符串。执行时,系统会认为此后语句位注释,故后续的文本将被忽略,不背编译与执行。

1.4 预防;

1.4.1 采用预编译语句集,它内置了处理SQL注入的能力,只要使用它的setXXX方法传值即可。

原理:sql注入只对sql语句的准备(编译)过程有破坏作用,而PreparedStatement已经准备好了,执行阶段只是把输入串作为数据处理,而不再对sql语句进行解析,准备,因此也就避免了sql注入问题。

优点:
a. 代码的可读性和可维护性;
b. PreparedStatement尽最大可能提高性能;
c. 最重要的一点是极大地提高了安全性。

1.4.2 使用正则表达式过滤传入的参数
1.4.3 字符串过滤
1.4.4 jsp中调用该函数检查是否包函非法字符
1.4.5 JSP页面添加客户端判断代码

2. XSS 攻击

2.1 概念:

XSS 是一种经常出现在 web 应用中的计算机安全漏洞。它允许恶意 web 用户将代码植入到提供给其它用户使用的页面中,比如这些代码包括 HTML 代码和客户端脚本,攻击者利用 XSS 漏洞控制访问控制。

2.2 类型:

2.2.1 本地利用漏洞——存在于页面中客户端脚本自身。
2.2.2 反射式漏洞—— web 客户端使用 server 端脚本生成页面为用户提供数据时,如果未经验证的用户数据被包含在页面中而未经 HTML 实体编码,客户端代码能够注入到动态页面中。
2.2.3 存储式漏洞——将攻击脚本上传到 web 服务器上,使得所有访问该页面的用户都面临信息泄露的可能。

2.3 预防;

2.3.1 过滤特殊字符(将用户提交内容进行过滤);
2.3.2 使用 HTTP 头指定类型。
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 注入攻击的分类 1.没有正确过滤转义字符 在用户的输入没有为转义字符过滤时,就会发生这种形式的注入式攻击,它会被传...
    查无此人asdasd阅读 1,649评论 0 5
  • 随着当今世界网络技术与信息技术高速发展,Web应用程序具有界面统一,使用简单,易于维护,扩展性好,共享度高等优先。...
    高美丽阅读 4,033评论 0 4
  • XSS(cross-site scripting跨域脚本攻击)攻击是最常见的Web攻击,其重点是“跨域”和“客户端...
    一只大橘阅读 722评论 0 6
  • 我将自己这次的上海之行,称为“巴学园”之旅。 依旧还记得,我读的那本《窗边的小豆豆》里的情境:书里的小豆豆...
    罂粟疯了阅读 1,053评论 0 2
  • 生完孩子以后我做了一年多的全职妈妈,七月份孩子满一岁回到北京开始找工作。大概身在职场中的人都了解一年多的远离,对于...
    陈初秋阅读 559评论 4 5