请问asp.net的一些源代码,特别是商业源代码,经常留有一些后门,后门原理是什么?这样的后门怎么加到自己的程序中?这样的后门怎么才能找出来,或者防止这些后门?

解决方案 »

  1.   


    随便利用一个页面参数,比如:Employees.aspx?page=you-know-i-love-you,page 是分页参数,正常情况下是不会取 you-know-i-love-you 这个值的。于是代码里可以这样写:if(Request.QueryString["page"] == "you-know-i-love-you")
    {
    DropSchema();// 删除数据库结构
    Response.Write("Be careful what you wish");
    Response.End();}
      

  2.   


    自从腾讯做了艰难的决定之后,我就换用UC了,确实没有QQ好用,但是暂时还不打算换回去
      

  3.   

    因为后门只是没有公开的软件功能。所以它和一般的软件功能没有什么不同,也就谈不上找出来了。但是,以下情况有助于你的判断:
    (1)软件执行的情况不符合预期
    (2)软件中有似乎用不到的功能、模块或者文件
    (3)对照源代码和使用说明书,对代码做 review
    (4)根据经验,首先假设软件后门存在,寻找最有可能存在这样代码的地方,再检查。
      

  4.   

    简单的例子:比如一个管理员登陆功能, 在实现代码中加入一个逻辑, 不对 qwerty 进行用户名密码验证这样, 别人用qwerty 就能登陆系统了
    或者夹带一个执行某个功能的页面文件, 这个页面并不能在链接中找到, 只能在浏览器中直接输入, 并且用户
    不知道
      

  5.   

    举个例子,如果一个网站(ASP.net),设定了域名限制,或数据库一定时间清空,这样的后门是怎么实现的
      

  6.   


    这些都可以从httpModule中操作,你可以检测 Web.Config 配置文件里的 httpModules 节点,有哪些类注册了Module事件,然后逐个检查该类的代码。
    另外,一些后门可能会隐藏在页面文件中,根据某个特定页面参数而产生后门功能。所以个人建议,不要轻易使用来源不明的代码,使用一些知名度较高的开源代码,这些网站后台都是经过千万人检测的,可以放心点