我大致说下:一般一个网站都是在<head></head>当中添加css样式,js等。
比如我写了一个类似于163注册页面(以163为例吧),
http://reg.email.163.com/mailregAll/reg0.jsp?from=163mail 写了一个js用来判断验证信息提示等。
<script type="text/javascript" src="/mailregAll/js/regvf1/function.js?"></script>
如果你在地址栏输入http://reg.email.163.com/mailregAll/js/regvf1/function.js 就可以下载查看js文件。
现在我就是不想让它被下载或者我有什么方法能使这个js即使被下载了也看不出"源码",就像我们把关键代码写在cs文件中,编辑生成下就好,发布给别人看的仅仅是aspx文件,可以确保项目的关键代码的安全性?也许我表达的不太清楚,求高手指点?

解决方案 »

  1.   

    使用silverlight或者flex吧。虽然他们也可以看到源代码,但是难度高一点。
      

  2.   

    这些插件可以跟网页进行很好地交互,比如你的silverlight程序总共也没有几行代码,例如var element = HtmlPage.Document.CreateElement("link");
    element.SetAttribute("rel", "stylesheet");
    element.SetAttribute("type", "text/css");
    element.SetAttribute("href", "Stylesheet1.css");
    ((HtmlElement)HtmlPage.Document.GetElementsByTagName("head")[0]).AppendChild(element);
    var new_element = HtmlPage.Document.CreateElement("script");
    new_element.SetAttribute("type", "text/javascript");
    new_element.SetAttribute("src", "myscript.js");
    HtmlPage.Document.Body.AppendChild(new_element);
    这样就提高了看你的代码的门槛。
      

  3.   

    呵呵 这段代码的作用就是替换了这样直接放在<head<script type="text/javascript" src="/mailregAll/js/regvf1/function.js?"></script>
    ></head>下吗
      

  4.   

    aspx也不是什么“隐藏aspx代码”,因为asp.net根本无法工作在浏览器上。他只是下载html,而这个它(asp.net)并没有隐藏。你不让浏览器去下载js,又想让它执行,这是做不到的。想让js不可读,但是又可以执行。实际上不管你怎样加密,最终总要解密成代码然后使用eval来执行。而对于可执行的js代码,对它进行格式化还是比较容易的,比如vs或者web design的编辑器就可以格式化。我想如果不想让别人看到脚本代码,唯一的最好选择就是不要写脚本代码。你可以在页面中将这一部分用silverlight来写,然后在javascript代码中来调用silverlight方法执行,这就可以了。
      

  5.   

    我想我有点明白你的意思了 我原先也是差不多这个意思  只是不知道用什么中间过程 所以举了一个cs页面和aspx页面的例子 就是想表达页面和代码分离的效果。放在这里 其他我就是想把js当做类似于cs文件的作用,封装代码,然后找个中间过程或什么的来当做页面显示的容器 这样在aspx页面上显示的仅仅是中间过程的路径 从而保护我js文件
      

  6.   

    通常JS是做页面逻辑,
    被人看到也无所谓,
    需要保护的商业秘密(也就是业务逻辑),
    通常都是放在数据库或者后台代码里,
    网站安全措施好,
    别人是看不到的.你一定要把业务逻辑做在JS里,
    那只能说你的设计思路有问题.正如SP所说,
    JS最终必须到浏览器里,
    才能为浏览器所用,
    无法做到绝对保密.但通常我们可以对JS进行混淆,
    大大增加别人窥探的难度.