开发网站需要注意的安全问题

网站的安全就是网站的生命!以下总结了几个开发网站需要注意的安全问题  :

(1)表单数据验证
在数据被输入程序前必须对数据合法性的检验。非法输入问题是最常见的Web应用程序安全漏洞。
需要做到:对任何输入内容进行检查。接受所有可以接受的内容,拒绝所有不能接受的内容。
所有提交的表单数据,都必须验证两次,即提交前在客户端用Javascript验证,提交后在服务器端用脚本再次验证,保证数据的合法性。尤其是对于必填项,不仅需要同时在客户端和服务端验证是否做了输入,还要验证输入的数据格式是否正确。需要注意:在客户端上的Javascript验证并不是真正意义上的检查。比如恶意用户很容易在自己的终端上禁用脚本执行,从而防止客户端的内容检查脚本运行,使得他可以输入恶意代码并成功地提交表单。对于图像上传功能,需要验证上传图像的格式及大小是否合乎要求。

(2)防范SQL语句注入攻击
程序需要对所有从外部接收到的数据进行过滤,防止恶意攻击。主要防范的字符有“'|script|exec|insert|select|delete|update|count|chr|mid|master|truncate|declare”


(3)使用积极的过滤而不是消极的过滤。 换句话说,就是检查应该输入什么,而不是检查不应该输入什么。

只规定哪些内容不应该输入,会留下太多的漏洞。因为有很多内容都不应该被输入。积极的过滤方式应该包括:
是否为空(需要去掉空格后判断)
是否是正确的数据类型 (字符串,整数等
是否要求带有参数
字符编码是否允许 
输入内容是否达到了内容长度的最大或者最小界限 
是否允许输入空值 
如果应该输入数字,那么确定数字大小的范围。 
输入内容是否造成了数据重复,如果是,判断这种情况是否可以接受。 
输入内容是否符合格式要求(比如是否采用正则表达式) 
如果是通过下拉列表选取的内容,确保其包含了有效的值

(4)地址栏变量需要进行验证对于从地址栏上接收到的变量,必须要验证其合法性。例如,如果从地址栏上收到了文章ID值,则需要验证ID是否为数字,是否有攻击字符等。

跨站攻击的预防在验证提交的数据时,为防止跨站攻击 ,可以检查上一个页面是否为本站,另外,过滤<iframe><javascript><alert>,重点把“<”替换为“<”,把 “>”替换为“>”

目录和文件夹的安全用户只能访问网站目录下的内容,确保用户不能访问网站目录以外的目录。
程序中涉及文件包含的地方,要确认所有包含的文件的位置正确。为了防止非法包含文件,应特别小心“./”“../”的使用。

(5)后台所有程序页面需要做授权验证如果未经过成功登录,不允许访问任何一个后台程序页面。如果用Session验证,Session有效期不可以太长,建议为15分钟。
成功登陆后的用户,需要验证是否有某个操作的权限。

关键信息需要加密对于密码、会话令牌等关键信息,需要进行加密后再保存到数据库,不允许用明文方式。一般采用MD5加密方式。

(5)配置文件安全
程序中的配置文件(重点是数据库连接配置)需要重点进行安全保护,配置文件不能允许用户直接访问,配置文件的文件扩展名不能为.inc.txt,必须为可执行脚本扩展名,如.asp.php.jsp.aspx…

(6)数据库安全
数据库文件需要重点安全保护,对于使用access数据库的程序,不可以允许数据库直接可以通过浏览器下载,数据库文件的路径和文件名称需要不易猜测到,数据库文件的扩展名不能为.mdb。可以设置服务器来禁止此类型的文件下载。
使用最低权限限制数据库用户的权限。如果使用SQL SERVERMySQL数据库,可以考虑只给浏览用户以读权限,后台用户以读、写及删权限。

(7)资源的释放

程序中的使用了关键资源后,必须进行显式释放和关闭,尤其是数据库连接、文件句柄等资源。

(8)防止过分详细的错误提示
攻击者经常会故意输入错误的内容,进而分析系统给出的错误提示信息,从中获取系统信息,发现可能存在的漏洞。对于使用Access数据库的用户来说,过于详细的错误提示可能会暴露出数据库文件的路径。

(9)友好的操作反馈提示
对于流程性的操作,需要给用户的操作以友好性反馈提示,让用户了解自己的操作是否有问题,问题在什么地方。例如,会员注册表单,如果用户提交时,忘记填写某些项,可以在该项后以醒目的颜色来提示,提示的显示最好以AJAX技术实现无刷新效果,提高用户体验。后台的程序对于一些操作,如删除、审核,必须让用户确认一下才可以执行。不管用户操作成功或失败,都需要给与提示信息。

(10)验证码的使用
对于用户注册、用户登陆、调查问卷、在线反馈、评论等程序,需要加上验证码,防止机器人绕过限制提交垃圾信息。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值