软件源代码对访问基于 Web 的软件的用户可见吗?即,有权访问我的 URL 的任何人都可以访问软件源代码(假设 URL 是运行软件的位置(?
需要用户登录的软件呢?是否所有具有登录凭据的用户都可以访问软件源代码(假设其用户有权访问完整软件(。
如果源代码通常可见 - 是否可以采取任何安全措施来避免被盗?
编辑:通过软件源代码,我的意思是全面的一切(服务器端,客户端等(
简短而笼统的答案:
-
对于在 Web 服务器上执行的程序代码:不,最终用户根本看不到此代码。
-
对于在Web浏览器中执行的程序代码(即HTML,CSS和JavaScript(:是的,最终用户必须有权访问此代码,浏览器才能运行它。WWW不支持任何类型的DRM。
这些答案的例外情况:
如果服务器端代码是"本地"的,则本地硬件的系统管理员可以轻松查看服务器端代码。
- 如果它是一个严格解释的代码,如PHP或经典ASP,那么是的,源代码是可见的。
- 如果它是本机编译的代码(例如.CGI(,则为否(除非用户可以读取汇编(
- 如果是像C#(ASP.NET(或Java(JSP,Tomcat等(这样的VM代码,那么代码可以很容易地反编译。
服务器端代码可能会无意中暴露在"云"中(不是本地安装(:
- 错误消息通常显示发生错误的几行源代码。
- 漏洞可能会向用户公开应用程序的原始文件系统。
客户端代码仍然可以被混淆。
- 这通常只是缩小的结果,但你可以故意混淆JavaScript。您不能混淆 HTML 和 CSS。
用于 Node 的服务器端执行和客户端执行的"混合"JavaScript.JS显然会被公开,但这不应被视为安全风险,除非您以某种方式在这些脚本中嵌入机密。