一个网站要想更安全许多事情就可以在开发的过程中解决!

以ASP.NET举例为说!

ASP.NET是一个编译型的网站,但是如果没有做好严格的文件名过滤,和数据库的操作封装!还是有很大的安全影响

一下是一个企业网站的制作过程中的安全工作例子!

一个企业网站具备的功能明白说就是一个新闻管理系统!

所需要做的安全工作也十分简单!

防注入方面:

第一:替换单引号,即把所有单独出现的单引号改成两个单引号,防止攻击者修改SQL命令的含义。再来看前面的例子,“SELECT * from Users WHERE login = ''' or ''1''=''1' AND password = ''' or ''1''=''1'”显然会得到与“SELECT * from Users WHERE login = '' or '1'='1' AND password = '' or '1'='1'”不同的结果。

第二:删除用户输入内容中的所有连字符,防止攻击者构造出类如“SELECT * from Users WHERE login = 'mas' -- AND password =''”之类的查询,因为这类查询的后半部分已经被注释掉,不再有效,攻击者只要知道一个合法的用户登录名称,根本不需要知道用户的密码就可以顺利获得访问权限。

第三:对于用来执行查询的数据库帐户,限制其权限。用不同的用户帐户执行查询、插入、更新、删除操作。由于隔离了不同帐户可执行的操作,因而也就防止了原本用于执行SELECT命令的地方却被用于执行INSERT、UPDATE或DELETE命令。

以上是我是我收集的一些看法!我的看法是下面两条!

第四:个人觉得所有最数据进行操作的事件或者语句最好用存储过程来写入,这可以有效的避免MySql数据的显错暴库!而且对此还需要做一个页面当黑客注入触发防注入的时候跳转到该页并提示非法操作!

第五:对Url后面的ID参数之后的内容进行URL编码,这样可以达到加密效果!虽然可以转换过来,但是考虑到一般人不会这么做!

对于文件名过滤方面:

第一:通过查看源码发现,现在还是有很多程序员在做过滤的时候都是用的Javascript做本地验证和过滤!这样做,个人觉得十分不好。过滤的代码可以给被攻击者看到,毕竟人有疏忽时!这样做有一定风险!个人看法觉得还是直接通过C#来写源码过滤比较好!虽然麻烦点,但是胜在源码不会被看见!

第二:对于上传文件名的过滤,大部分企业网站开发人员为了方便就直接使用编辑器的上传功能!这拥有十分大的风险!虽然我自学WEB安全也一年多,但是还是知道一个网站最容易被拿下的也是编辑器!

所以还是自己做一个上传功能比较好!对于上传的过滤也十分重要!很多开发者在对这个进行过滤是可能都会去判断最后一个.后面的文件后缀是否非法,这么做也不是不可以,但是这么做还有在做调节,当后面后缀正确时,则修改文件名以时间为标准!

后台方面:

第一:在做管理员登陆的时候,记录用户数据建议用Session而不用Cookie,因为Cookie很不安全!

第二:在做后台的时候,编辑器是始终要考虑的问题,最好删掉一些上传和管理页面,只留下编辑器!还有小心FCK编辑器的配置文件,这个地方删除了TEST页面最好也对配置文件名字进行更改!不过挺麻烦更改了之后,里面的一些文件内容也要改一下,还有一个方法就是对配置文件的目录做可读不可写权限!

第三:数据库备份这个功能最好不要加,加也可以,但是要强制备份成.mdb或.mdf!最好就是备份成功路径也不要显示!

第四:要给数据库做好严格的放防下载,防止下载敏感资料!

服务器方面:

说实在这方面对于我这个WEB安全在学了一年的人,可能还有很多疏忽!见谅!

第一:禁用Wscipit.shell组建!

第二:对于网站路径做好严格的权限设置,特别是编辑器路劲,最好可读不可写!

第三:MySql,MsSql不要用默认的账号密码!

第四:对C盘做权限设置,特别是临时文件夹,回收站路径,windows路径,程序路径!

第五:杀毒软件实时更新,APR防火墙!

第六:如果条件可以弄一台服务器做数据库服务器,如果不行对数据库路径做好权限设置不可读不可写!

第七:server—u这些上传工具最好不要用,或者用别的功能相等的工具!

第八:修改3389键值的端口!

第九:做好路由防护,以防止APR嗅探!

第十:做好通服务器网站旁注,听说最近360安全专家出了一个旁注安全检测,可以试试!

好了,以上想到的就这么多了!当然权限设置主要是针对于游客权限,匿名权限,以及iis的一些权限!


转自:http://www.90sec.org/viewthread.php?tid=2710&extra=page%3D1%26amp%3Borderby%3Ddateline%26amp%3Bfilter%3D2592000