网站应用成为主流
最早的软件是运行在大型机上,使用者们要想使用软件,都需要登录到大型机。后来,PC革命,电脑走入千家万户,软件开始主要运行在桌面上,相应的数据库软件则跑在服务器端,这种模式被称为C/S架构。
随着互联网的影响力渗透到各行各业,信息量开始剧烈增加,人们对消费信息的需求也变得五花八门。为满足日新月易的需求,软件开发者们需要不断的新增功能、不断的升级软件。若还是采取C/S架构,就需要在每个客户端,逐个升级桌面软件,显然,这种做法,太过费事费力。
在这样的背景下,B/S架构产生了,在这个架构下,客户端只需要利用浏览器,应用程序的响应和数据都存储在服务器端。浏览器只需要请求服务器,拿到Web页面,并把Web页面展示给用户即可。这样一来,修改和升级应用程序,就变得非常迅速了。
黑客跃跃欲试
Web应用迅猛发展,由于其承载的数据越来越有价值,也吸引了黑客的关注。攻击Web应用,主要的手段有两种,一种是SQL注入攻击,另一种是XSS攻击。
攻防的常规手段有哪些
黑客使用SQL攻击,会在HTTP请求中注入恶意SQL命令,当服务器用请求的参数构造SQL命令时,其中的恶意SQL被一起构造了进去,并在数据库执行。
了解了数据库结构,就可以展开SQL注入攻击,黑客可以用以下这些手段来获取数据库的表结构信息。
-- 开源手段。如果网站是用开源软件搭的,那么自然,网站的数据库结构就是公开的,攻击者可以加以利用。
-- 盲注手段。顾名思义,首先猜测表名等数据库表的结构信息,进行SQL注入。
-- 利用错误回显。如果网站开启了错误回显,那么服务器内部的500错误就会显示在浏览器上。攻击者先故意制造非法参数,让服务器的异常信息输出在浏览器端,借此,猜测数据表的结构。
而XSS攻击是跨站点的脚本攻击。黑客通过篡改网页,注入恶意的HTML脚本,在用户浏览网页时,控制用户浏览器进行恶意操作的一种攻击方式。
黑客用XSS攻击,可以偷取用户Cookie、密码等重要数据,从而伪造交易、窃取情报,以盗窃用户财产。
那么如何防御XSS攻击呢,消毒是一个必备手段。对某些HTML危险字符进行转义,进行过滤和消毒处理,就可以防止大部分的XSS攻击。
防御SQL攻击,也有类似的消毒手段。对请求参数进行消毒,如通过正则匹配,过滤请求数据中恶意注入的SQL,如“drop table”这些。
网站的安全是个越发重要的问题,通过提升黑客的攻击门槛,让他付出比获得的收益更大的代价,可以让黑客消停下来。