代码之家  ›  专栏  ›  技术社区  ›  Zerotoinfinity HLGEM

隐藏我的网站是在ASP.NET中构建的事实

  •  1
  • Zerotoinfinity HLGEM  · 技术社区  · 14 年前

    我在ASP.NET 3.5和C中开发了一个Web应用程序。当我部署应用程序时,人们可以看到我使用ASP.NET的迹象。我该如何做才能让任何看到我的网站的人都看不到我正在使用ASP.NET?

    5 回复  |  直到 14 年前
        1
  •  5
  •   George Stocker NotMe    14 年前

    由于ASP.NET的特性,任何动态构建的控件都将显示 $Ctrl . 如果您使用viewstate,它将出现。如果使用ASP.NET事件验证,将显示该验证。

    如果您不希望它出现,您所能做的就是使用另一个框架(ASP.NET MVC),或者不使用ASP.NET的任何功能(如果您使用ASP.NET,这将是愚蠢的)。

    如果你的页面加了后缀 .aspx 不管怎样,每个人都会知道你在使用ASP.NET。您是否正在使用URL重写?

        2
  •  1
  •   Bastien Léonard    14 年前

    我建议:

    • 使用URL重写器更改或删除页面扩展名
    • 不使用视图状态。
        3
  •  1
  •   Greg    14 年前

    定义信号符号?如果不查看源代码,唯一明显的方法就是.aspx扩展。

    查看源文件,您需要删除

    <input type="hidden" name="__EVENTTARGET" id="__EVENTTARGET" value="" />
    <input type="hidden" name="__EVENTARGUMENT" id="__EVENTARGUMENT" value="" />
    <input type="hidden" name="__VIEWSTATE" id="__VIEWSTATE" ...
    
        <script type="text/javascript">
    //<![CDATA[
    var theForm = document.forms['aspnetForm'];
    if (!theForm) {
        theForm = document.aspnetForm;
    }
    function __doPostBack(eventTarget, eventArgument) {
        if (!theForm.onsubmit || (theForm.onsubmit() != false)) {
            theForm.__EVENTTARGET.value = eventTarget;
            theForm.__EVENTARGUMENT.value = eventArgument;
            theForm.submit();
        }
    }
    //]]>
    </script>
    
    • 对WebResource.axd或ScriptResource.axd的任何引用
    • ASP.NET控件名称(ctl00等)
    • 响应头 X-Powered-By X-AspNet-Version

    有人能想到其他人吗?

        4
  •  1
  •   Srikanth Venugopalan    14 年前

    您可能还需要删除嵌入的资源。页面源中的.axd扩展名是一个赠品。

    编辑: 想想看,隐藏的字段(例如“事件验证”)也会提供一些帮助…

        5
  •  0
  •   Cylon Cat    14 年前

    您唯一真正的选择是切换到ASP.NET MVC;否则,会有人告诉任何真正了解ASP.NET的人,或者您将限制您使用的功能,使使用ASP.NET没有好处。即使没有viewstate,如果面板中嵌入了控件,或者使用了母版页,控件ID也会被提供。由控件或页面发出的任何特定于MS的javascript都将被释放。每页一致使用一个表单几乎是一种让步。很多东西都表示ASP.NET。

    为什么这么重要?