如何调整他人网站代码:探讨ASP、.NET及PHP源码的修改技巧
ASP源代码 .net源代码 PHP源代码指的是什么
源代码即是构建网站的程序,ASP是一种编程语言。
上传至个人服务器,若功能完备,只需对模板(即网站的外观)稍作修改。
简言之,创建新网站的步骤如下:
1、拥有个人服务器(ASP程序需确认服务器支持)、域名
2、将域名解析至服务器IP,并在服务器后台绑定该域名
3、通过FTP传输程序等待上传---
4、登录域名网站、以及后台修改设置
5、优化、让别人测试、引入外链
等等 ASP.NET在服务器上存储的是编译后的二进制文件,执行效率高,它同样源自源代码,开发人员修改源代码后进行编译。
而PHP在服务器上存储的是源代码,用户访问PHP文件时,由PHP解析器即时计算出结果。
因此,ASP.NET相对于PHP更安全。
ASP.NET网站中的共享代码文件夹
如果您的Web应用程序需要在多个页面间共享代码,您可以将代码保存在Web应用程序根目录下的两个特殊文件夹(Bin文件夹和App_Code文件夹)之一中。当您创建这些文件夹并在其中存储特定类型的文件时,ASP.NET将以特殊方式处理这些文件。Bin文件夹可以在其中存储编译的程序集,并且Web应用程序中其他位置的代码(如页面代码)会自动引用该文件夹。典型的示例是您为自定义类编译好的代码。您可以将编译后的程序集复制到Web应用程序的Bin文件夹中,这样所有页面都可以使用这个类。Bin文件夹中的程序集无需注册,只要dll文件存在于Bin文件夹中,ASP.NET就可以识别它。如果您更改了dll文件并将新版本写入Bin文件夹中,则ASP.NET会检测到更新并对后续的新页面请求使用新版本的dll文件。将编译后的程序集放入Bin文件夹中会带来安全风险。如果您自己编写和编译的代码,那么您了解代码的功能,但您必须像对待任何可执行代码一样对待Bin文件夹中已编译的代码。在完成代码测试并确信已了解代码功能之前,要对已编译的代码保持谨慎的态度。请注意以下安全方面的知识,这些知识与是否将已编译的代码放入Bin文件夹有关。Bin文件夹中程序集的作用范围为当前应用程序,因此它们无法访问当前Web应用程序之外的资源或调用当前Web应用程序之外的代码。运行时程序集的访问级别由本地计算机上指定的信任级别确定。有关更多信息,请参阅ASP.NET信任级别和策略文件。如果您使用了诸如Visual Studio这样的设计器,那么Bin文件夹中的代码运行所在的上下文与运行时不同,例如代码可能以完全信任状态运行。
App_Code文件夹可以在其中存储源代码,在运行时将会自动对这些代码进行编译。Web应用程序中的其他任何代码都可以访问产生的程序集,因此App_Code文件夹的工作方式与Bin文件夹很类似。不同之处在于您可以在其中存储源代码而非已编译的代码。App_Code文件夹及其在ASP.NET Web应用程序中的特殊地位使您可以创建自定义类和其他仅源代码文件,并在Web应用程序中使用它们而不必单独对它们进行编译。App_Code文件夹可以包含以传统类文件(即带有vb、cs等扩展名的文件)的形式编写的源代码文件,但它也可以包含并非明确显示出由某一特定编程语言编写的文件,例如wsdl(Web服务描述语言)文件和xml架构(xsd)文件。ASP.NET可以将这些文件编译成程序集。根据您的需要,App_Code文件夹可以包含任意数量的文件和子文件夹。您可以采用任何您认为方便的方式组织源代码。ASP.NET仍会将所有代码编译成单个程序集,并且Web应用程序中任意位置的代码都可以访问该程序集。注意,在App_Code文件夹中不允许使用用户控件,这包括单文件用户控件以及使用代码隐藏模型的用户控件。将用户控件置于App_Code目录中会导致不按用户控件代码所要求的顺序对其进行编译,因此是不允许的。请注意,不需要将用户控件置于App_Code文件夹中,因为处于应用程序中任何位置的页面都已经可以使用这些控件。推断App_Code文件夹的编程语言,App_Code文件夹并未显式标记为包含以任何一种编程语言编写的文件,相反,ASP.NET是根据App_Code文件夹所包含的文件来推断应为App_Code文件夹调用哪一种编译器。如果App_Code文件夹包含vb文件,则ASP.NET使用Visual Basic编译器;如果包含cs文件,则ASP.NET使用C#编译器,以此类推。如果App_Code文件夹只包含并未明确表明编程语言的文件(如wsdl文件),则ASP.NET将使用Web应用程序的默认编译器。默认编译器在Web应用程序或计算机配置文件的compilation元素中确定。在App_Code文件夹中使用多种编程语言,因为App_Code文件夹中的源代码要编译成单个程序集,所以App_Code文件夹中的所有文件必须使用相同的编程语言编写。例如,App_Code文件夹不能同时包含采用Visual Basic和C#编写的源代码,但是您可以对Web应用程序进行配置,使其将App_Code文件夹的子文件夹作为独立的可编译单元处理,这样每个文件夹就可以包含以不同编程语言编写的源代码。通过在web.config文件的compilation元素中创建一个compilation元素,然后添加对子文件夹的引用即可指定该配置。下面的示例阐释如何对名为VBCode和CSCode的子文件夹进行配置,使其编译成不同的程序集。复制代码
对VBCode和CSCode子文件夹的引用并不需要包括任何有关子文件夹中所包含的编程语言的信息,就像对待App_Code文件夹本身一样。ASP.NET会根据子文件夹中的文件来推断要使用的编译器。App_Code文件夹的安全性,App_Code文件夹中的代码存在的安全问题基本上与Bin文件夹中的代码存在的安全问题相同。代码都会在运行时编译成程序集,比Bin文件夹要好一些的是您可以阅读App_Code文件夹中文件的源代码,但是如果您不能完全理解代码,仍然会存在安全风险。因此,对待App_Code文件夹中的源代码的态度必须像对待基于同样的源代码生成的已编译代码一样谨慎。