【发布时间】:2019-04-02 16:38:00
【问题描述】:
我有 Apache+Nginx 混合服务器设置运行一个带有 php/mysql 后端的网站。
出于安全原因,我试图限制用户直接访问我网站的内部文件夹/目录,如 css、Js 和其他包含的 php 文件。
例如,如果用户在浏览器 url 中输入 https://mywebsite.com/css 或 https://mywebsite.com/included-php-files/ 那么它应该给他 403 禁止目录访问错误。
但是,当必须通过 Ajax 请求或内部包含中的 index.php 等内部文件访问这些目录时,应该允许这些目录具有访问权限。
我尝试了许多解决方案,但它们甚至永久阻止访问我的网站内部文件。
/css
/Js
/admin
/sitemap/sitemap files/
这些是我网站内的目录示例,我需要隐藏它们以防止用户直接访问它们以防止滥用它们。
我尝试的最后一件事是,我在每个要停止直接外部访问的文件夹中添加了一个空 index.php 文件,这样当用户尝试访问这些文件夹或目录时,它会向他们显示空白页面。
但我希望是否有其他更好的方法,例如使用 nginx 或 apache?
请帮帮我..
如果需要更清楚地了解问题,我会更新..
【问题讨论】:
-
你可以利用
.htaccess来限制行为 -
是的,我试图在 .htaccess 中拒绝,但即使我的网站页面试图访问这些目录,它也会拒绝访问,所以即使我必须更改一些 Nginx 配置,我也在寻找解决方案。
-
您不能出于显而易见的原因拒绝访问您的页面需要访问的任何内容。请记住,浏览器会解析您的 HTML,然后获取 CSS 和 JS 等资源
-
@RiggsFolly 但是我有些网站他们允许他们的网站页面访问这些文件夹,但阻止外部用户访问,请看这里 - filmydog.com/js,你将无法访问它,但网站正在通过访问它来加载它。
-
然后你必须例如用 PHP 编写一个接口脚本并传递参数请求资源。然后 PHP 可以从任何地方返回该资源。 但这将对您的网站代码进行重大更改
标签: php mysql apache .htaccess nginx