apache - 如何限制对我无法仅通过其他引用应用程序控制的应用程序的访问?

标签 apache security nginx webserver http-referer

我们的客户有一组 (5-6) 个内部网/互联网应用程序,它们是定制开发的或 3d 方的,位于各种 Web 服务器中,我们无法修改的应用程序 /控制。

我们开发了一个 Web 门户应用程序 (A) 并且客户希望它的所有 其他应用程序 (B) 只能通过 A 访问,这意味着如果用户直接输入 B 的应用程序 url,他会得到一个错误页面,告知仅允许通过 A 访问。因此,用户必须登录应用程序 A,然后单击应用程序 B 的链接才能访问它。出于安全原因要求此要求并使 A 充当 接入网关到其他应用程序 (B)。

这是可能的,我们如何实现它?我们应该使用另一个 顶部的 Web 服务器充当代理 到所有其他应用程序 (B) 还是有更好的解决方案?如果我们使用另一个 Web 服务器作为代理,我们应该使用 来实现引用逻辑。用户 ID - token 方法结合适当 session cookie ,以便应用程序 B 的 url 不能被黑客入侵,并且对于每个用户和 session 都是唯一的?

抱歉,如果我表达的问题不清楚或有误,但我不熟悉网络/系统管理和 Web 服务器。我可以在需要的地方提供更多细节。

最佳答案

这里有不同的方法:
1. 使用防火墙设置仅从 A IP 地址访问 B http{s} 端口。
2. 在 httpd.conf 中为 aps B 目录设置目录限制,例如:

<Directory "/var/www/B">
   AllowOverride None
   Order allow,deny
   Allow from <IP of A>
</Directory>

在 APS 中创建链接( http://ip_A/accesstoB/somepath/script.php ),该链接将使用 .htaccess 规则代理到 B,例如:
RewriteRule ^accesstoB/(.*)$ http://<ip_B>/$1 [P]

在本例中:客户访问 http://ip_A/accesstoB/somepath/script.php链接将被代理到 http://ip_B/somepath/script.php

关于apache - 如何限制对我无法仅通过其他引用应用程序控制的应用程序的访问?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20993728/

相关文章:

mysql - Rails应用程序MYSQL错误nginx

http - nginx 和带有代理传递的尾部斜线

ssl - https 需要 url 中的 80 端口

security - 在哪里管理 ACL 继承?

security - 为什么我应该在 cookie 中使用 session id 而不是在 cookie 中存储登录名和(散列)密码?

php - 配置 Apache、PHP5 FPM 和 MySQL 进行长查询

regex - 排除 URL 的重定向匹配不起作用

java - 通过 Web Start 执行单个 Java 应用程序时的多个安全对话框

java - Apache OfBiz 执行问题

apache - 虚拟主机强制 https 并将 www 重定向到非 www,但没有其他子域