【问题标题】:Can you see PHP scripts client side?你能看到 PHP 脚本客户端吗?
【发布时间】:2016-03-05 12:50:43
【问题描述】:

我只是要求这样做以使我的网站尽可能安全,因为它将处理个人信息。这就是为什么我选择使用 PHP 进行编码的原因,因为它在所有服务器端运行,但我听说那里有一些技巧,如果知道脚本所在的 URL,你可以阅读脚本。我个人还没有看到这个,所以我只是想澄清一下,以确保 PHP 中的编码是安全方面的最佳选择。

基本上,我希望至少有可能以某种方式被黑客入侵。一旦我完成了网站的开发,我将应用 SSL 证书,我知道这将对来回传输的信息进行加密有很大帮助。

【问题讨论】:

  • 仅当您的服务器配置错误时
  • 用户看不到源代码并不意味着它不能被利用。查找 SQL 注入和跨站点脚本。唯一可证明安全的站点是琐碎的空白页面(假设服务器配置正确)。

标签: php security ssl


【解决方案1】:

没有人可以看到您的代码,因为 Apache(或您使用的任何 Web 服务器)被指示执行任何 .php 文件,而不是像默认情况下那样简单地提供(显示)它们(使用 .html、.css、.js、等)。

我认为您可能听说过一般使用 PHP 的一般安全问题 - 如果您使用共享主机(其他用户也使用与您相同的服务器),他们通常能够以编程方式查看您的代码,也就是说他们可以编写一个列出您的 PHP 脚本的 PHP 脚本——这确实要求他们知道您的脚本存储在的物理目录,但是他们可以再次编写一个 PHP 脚本来尝试发现这一点。

一般来说,这不是问题,但如果我在做任何敏感性质的事情(例如接受信用卡付款),我始终确保我在只有我可以编程访问的环境中工作(即虚拟服务器或专用服务器 -- 虚拟服务器是指我拥有专用独占访问权限的虚拟机,不要将其与共享服务器的“虚拟主机”混淆)。

【讨论】:

  • 如果您的共享主机允许访问其他用户文件,我会切换主机。
  • 没有给出关于破解其他用户帐户的教程,我只想说 Apache 以单一系统用户(例如 wwwrun 或 apache)的身份运行,这意味着如果 apache 可以访问它任何人都可以告诉 apache 要做什么,即在共享主机上拥有帐户的用户。即使您在一个有某种机制来解决这个问题的共享主机上,假设没有人会破解您并查看您的源代码也是一种不好的做法 - 尽可能深入地保护代码安全!
  • 正确,是的,你可以——对于潜在的攻击者来说,最难的部分是确保他们与你在同一台服务器上——通常他们的目录很容易通过使用你的上下文来计算自己的 - 也就是说,如果我得到了我的路径,因为 /srv/www/my.site.address/ 他们的将是 /srv/www/their.site.address。一些主机混淆了这些信息,但如果你真的想的话,你可以使用蛮力找到他们的目录。
  • 有趣的是,我的主机为每个用户都有一个自己的会话文件夹。在您的回答中,共享主机不安全听起来很正常。我同意存在更高的风险。但是访问其他用户的会话或文件应该是不正常的。 stackoverflow.com/a/6384579
  • @RolandStarke 虽然很高兴您的主机已采取措施提高安全性,但请接受并非所有主机都是平等的而且这通常很困难(无需实际尝试破解他人的帐户,这至少在这里是非法的在英国)以确定主机如何设置其系统,如您的链接中所述。最坏情况下的代码,永远不要假设你的主机可以保护你,永远不要相信他们的话。在网站安全方面,偏执狂非常有价值!
【解决方案2】:

除非您启用了错误报告并且发生暴露代码的错误,否则没有人可以阅读您的代码。当您为用户做好准备时,请确保您已开启错误登录并关闭错误报告。

设置 ini_set('display_errors', 'Off');在你的 php 代码中(或者直接进入你的 ini,如果可能的话)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-09-25
    • 2016-08-31
    • 1970-01-01
    • 2019-05-05
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多