常见的网站安全问题


尽管你的网站用了很多高大上的技术,但是如果网站的安全性不足,无法保护网站的数据,甚至成为恶意程序的寄生温床,那前面堆砌了再多的美好也都成了枉然。

SQL注入

在众多安全性漏洞中,SQL 注入绝对是最严重但也是最好处理的一种安全漏洞。在数据库执行查询句时,如果将恶意用户给出的参数直接拼接在查询句上,就有可能发生。

举个例子,假设原本某网站登录验证的查询句长这样:

  1. strSQL = "SELECT * FROM users WHERE (name = '" + userName + "') and (pw = '"+ passWord +"');" 

而恶意用户输入的参数为:

  1. userName = "1' OR '1'='1"; 
  2. passWord = "1' OR '1'='1"; 

由于代码中是直接将参数与查询句做字串做的拼接,所以 SQL 就成为了这样:

  1. strSQL = "SELECT * FROM users WHERE (name = '1' OR '1'='1') and (pw = '1' OR '1'='1');" 
  2. // 相当于 
  3. strSQL = "SELECT * FROM users;" 

这样一来,账号密码就形同虚设,甚至可以拿到整个数据库的结构(SELECT * FROM sys.tables)、任意修改、查询数据,整个网站的数据就全部泄露了。

不过解决方法也很简单,只要通过参数化查询来避免直接将参数与查询句拼接,并进行适当的输入检查、插入转义字符、严格设定程序权限,就能够有效避免 SQL 注入了。

XSS

XSS(跨站攻击)也叫JavaScript 注入,是现代网站最频繁出现的问题之一,它指的是网站被恶意用户植入了其他代码,通常发生在网站将用户输入的内容直接放到网站内容时。例如论坛、留言板等可以输入任意文字的网站,恶意用户如果写入一小段 可以跨域的特性直接使用浏览器用户的 Cookie;攻击者只需要在网页上通过  

看起来很恐怖,那么该如何解决呢?除了前面所说的 CSRF Token 外,许多大公司还采用了另一种有趣的解决方式。即 API 的响应内容开头为 for (;;);,这也是利用 了<script> 引入的 JavaScript 会立即执行的特性,把攻击者的网站卡死在循环里。

总结

除了文中提到的四种常见的网站安全漏洞外,一个网站还有很多细节需要考虑,例如不要用明码存储密码等敏感信息,针对来源 IP 做流量限制防止 DOS 等等。所以在进行网站开发时要保持安全意识,尽可能做好基本的防护措施。

为什么你的云服务器总被入侵?

云服务器总被入侵很有可能是自身的服务器程序存在漏洞,软件等级较低,被黑客利用而发动攻击。尤其是一些特殊行业,例如金融、医疗、电子商务、银行等,黑客攻击云服务器获取数据而谋取利益。自身程序漏洞云主机可能存在漏洞或处理配备有差错,若没有及时发现和处理,就有可能被黑...
云服务器服务器安全入侵

服务器安全狗支持哪种服务器系统?

服务器安全狗Windows版本运行环境图1.服务器安全狗Windows版本目前已经发布的服务器安全狗Windows版本,支持Windows2000/Windows2003(32位、64位)/Windows2008(32位、64位) 服务器系统。服务器安全狗Li...
服务器安全狗服务器安全服务器系统

服务器安全狗之远程桌面保护操作教程

服务器安全狗远程桌面守护功能为用户服务器提供实时、主动的远程桌面登录保护,远程桌面守护针对多种类型的主流远程控制软件,包括操作系统自带的远程桌面登录工具、RealVnc、Redmin、Netman等都可以有效实现守护功能,确保服务器远程桌面不被非法登录。同时,...
服务器安全狗远程桌面服务器安全

微软发现与Log4j相关的高危漏洞

微软表示,在寻找 Log4j 漏洞时发现了 SolarWinds Serv-U 软件先前未披露的问题。Jonathan Bar Or在 Twitter 上解释说,当他在寻找 Log4j漏洞利用尝试时,他注意到来自 serv-u.exe 的攻击。 仔细观察发现,...
漏洞服务器安全log4j微软