【问题标题】:How are Express.js files not exposed when deployed to the server?Express.js 文件在部署到服务器时如何不暴露?
【发布时间】:2018-08-23 07:15:01
【问题描述】:

这似乎是一个奇怪/广泛的问题,但服务器如何知道不呈现 Express.js 文件并且不公开内容,类似于任何人都可以看到 javascript 文件并读取正在执行的脚本。像 Heroku 这样的节点服务器会保护它们吗?抱歉,刚刚表达和节点。它是否类似于 PHP 语法/脚本在 Apache 服务器中的隐藏和保护方式?

【问题讨论】:

  • 服务器不做任何事情,除非你设置它来做。所以你只是不要将它设置为从 JS 文件所在的目录中提供文件。
  • 老实说,我的头晕目眩

标签: node.js express web-applications server-side


【解决方案1】:

这取决于服务器配置。在配置不佳的服务器上,可能可以访问 .js 文件。

使用 nodejs/expressjs 服务器 define a base folder that contains public files,例如public 和该公用文件夹之外的文件不可见,因为服务器不会将它们提供给外部。如果您配置了错误的目录,例如.,那么 expressjs 代码文件将可供浏览器使用并按原样呈现给它们,可能会泄露配置、密码等不安全数据。由于默认配置和所有代码示例都确保将public 定义为公用文件夹,因此意外配置错误的风险很低。

如果您在同一主机上运行 apache httpd 或其他网络服务器,则必须确保节点应用程序位于任何 vhost 的 webroot 中,否则文件也可能可见,因为对于 apache httpd 来说,它们也看起来像简单的静态文件,可以按原样发送到浏览器。

它与 PHP 文件不同,至少在 apache httpd 或 nginx 的情况下,因为它们通常被配置为 PHP 文件是要执行的文件,而不是要提供给外部的静态文件。但是,如果 apache httpd 或 nginx 不知道 PHP,或者因为它没有安装或没有配置,那么 webroot 中的 PHP 文件也将按原样显示给公众。使用 .htaccess 文件可以防止显示 apache httpd 的文件。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2020-05-09
    • 1970-01-01
    • 1970-01-01
    • 2021-08-30
    • 2015-10-31
    • 2021-07-16
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多