热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

如何通过登录PHP网站实现校园内外差异化访问:内部免费而外部需付费

该大学网站采用PHP和MySQL技术,在校内可免费访问某些外部收费资料数据库。为了方便学生校外访问,建议通过学校账号登录实现免费访问。具体方案可包括利用学校服务器作为代理,结合身份验证机制,确保合法用户在校外也能享受免费资源。
是一个大学的网站(Php+MySQL),在校园内部可以免费访问一些外部的收费资料数据库,现在希望让学生在校外通过登陆学校的网站来免费访问这些收费的资料数据库,请问是否有解决方案。我觉得可以通过学校的服务器发送请求给校外数据库,然后再由学校的服务器将结果原封不动的发送给客户端,但是1)不知道这个方案是否可行;2)即使可行,也不知道应该如何实现。
恳请各位大虾帮助,谢谢!

19 个解决方案

#1


我们学校用的vpn

51cto的vpn介绍
http://netsecurity.51cto.com/art/200712/63094.htm

#2


vpn确实可行,服务器请求也可行

你可以在你的网站上加入链接,链接形式如:
http://www.yoursite.com/redirect.php?url=http://www.校园网xxxx.com/
将学生要访问的链接作为参数传给你的php,再由你的php文件访问对应网址,将内容然后echo给学生.
为安全起见,最好将"http://www.校园网xxxx.com/"这部分编码
为执行效率起见,最好将常访问的东西做一个缓存,否则很慢

php可以通过fopen函数让服务器访问其他http资源:
$handle = fopen("http://www.example.com/", "r");

#3


多谢joycheney兄,你说的极是,是不是可以用SESSION来进行身份的认证,然后决定是不是有权限去访问站点,如果有,就用FOPEN函数将资源读取在服务器中,然后再ECHO进网页发送回客户端。


也谢谢justicesun兄,你的建议也很好的。赫赫

#4


还有就是因为资源网站是主要用来查询资料的,所以有一些查询的请求,如果只是简单的ECHO的话,那么这些请求应该会直接递交到资源网站,这样的话应该是依然没有可能获得想要的资料的,这个又该如何处理呢?

#5


是否要在服务器端对所取得的资源里面所有的链接,Form进行重新定位呢?

#6


几天没上网,是这样的,echo之前你可以先做正则替换的,把
http://www.校园网xxxx.com/
这部分替换成:
http://www.yoursite.com/redirect.php?url=http://www.校园网xxxx.com/

这样的话,比如
http://www.校园网xxxx.com/1.jpg
就变成了
http://www.yoursite.com/redirect.php?url=http://www.校园网xxxx.com/1.jpg

或者,你可以在php里面加上判断,对html或者别的什么格式才做正则替换。

对于正则替换,还请自己上网看看正则表达式怎么写,仔细学半个小时就能看懂

#7


第二个问题,是否要在服务器段所取得的Form重定位,这么说吧,很多时候你只能代替用户登陆的,请到
http://snoopy.sourceforge.net/
下载一个人家封装好的php类库,看看能不能帮上你

#8


这个问题比较复杂 。如果是交互性比较强的站点用php网页代理的形势还是不行的。
需要考虑很多方面的情况: 访问用户的限制,访问网站的限制,目标站点的命名空间问题(这个不好解决)

建议考虑反向代理来解决这类问题。有收费的,有免费的

#9


反向代理需要用户物理上能够访问校内的网站吧,但是校园网和外网通常是物理上独立分割的

不过也确实如8楼所说的,如果交互性过强,php网页代理还是很成问题

#10


joycheney兄,看这样是不是可以:
先是用户登录校园网站,通过验证后再给与访问资源的权限,然后用FOPEN得到目标文件,在服务器上对所有的链接作正则替换,然后再传送给客户端。

另,我在网上搜索了一下,看见有些人是用file_get_contents来做的,不知道和FOPEN有什么区别?

也多谢CHENHI23兄的指点!

#11


你想让学生在校外也可以登录到原本只能在校园网能看到的收费信息?

没理解清楚。首要问题是 那些收费数据 是不是你们控制的?

#12


反向代理不需要用户物理上能够访问目标网站。

用户需要能访问登录的网站,然后代理的服务器可以访问目标站点就可以。

也就是说即便目标站点是192的内网地址,只要代理服务器能访问,外部用户就可以看到。

另外url替换也是php正则替换有时无法解决的问题。 php正则替换之解决了数据包的替换,无法对header头信息进行替换。
COOKIEs等替换也无法解决

#13


回ashchen,是一些资料网站,类似于万方的数据库,一般在校外是要付费才可以查阅其中的资料的,现在希望学生在校外,只要凭学生账号登陆学校的网站,就可以像在学校内一样的免费查询。收费数据不是我们控制,只是可以免费的在校园网内访问!

#14


那还是在校内建个socket5代理,支持数据库管理用户名密码使用时间那种,用防火墙控制目标网站列表

#15


如果如chenji23所说,反向代理不需要物理链接,你试下反向代理吧
之前我没有用过反向代理,还是chenji23指点有效

参考
http://www.java-asp.net/software/0412/106924576.shtml

#16


反向代理我看过介绍了,需要在浏览器里面重新设置代理访问互联网的代理的,这个不时很符合这个项目的要求的。
昨天看了一些文章,觉得还是用FOPEN打开地址文件,然后用FGETS获得数据,然后通过字符串函数找到链接地址并修改。

但是新的问题有来了,有一些是伴随网页打开的图片,音乐甚至是视频应该如何处理呢?

#17


看了一下joycheney兄给的网站,又找了SQUID的指南看了一下,觉得反向代理还是比较适用的,但是用户认证和地址解析还有一点问题。
继续努力!大家有好主意也请不吝赐教!谢谢!

#18


几乎明白了,准备用SQUID作反向代理服务器,再结合MySQL做访问认证。
现在就是想怎样先通过一个浏览器界面让用户登录了,我再想想:)

#19


把客户端的IP地址取出来比较一下就可以了嘛.内网和外网的IP规则是有区别的

#20


  • 穿透校园局域网 做到无服务商外网访问
  • 基于PHP的校园二手交易网站的设计与实现

推荐阅读
  • 使用PHP实现网站访客计数器的完整指南
    本文详细介绍了如何利用PHP构建一个简易的网站访客统计系统。通过具体的代码示例和详细的解释,帮助开发者理解和实现这一功能,适用于初学者和有一定经验的开发人员。 ... [详细]
  • 本文详细介绍了如何在不同操作系统和设备上设置和配置网络连接的IP地址,涵盖静态和动态IP地址的设置方法。同时,提供了关于路由器和机顶盒等设备的IP配置指南。 ... [详细]
  • 福克斯新闻数据库配置失误导致1300万条敏感记录泄露
    由于数据库配置错误,福克斯新闻暴露了一个58GB的未受保护数据库,其中包含约1300万条网络内容管理记录。任何互联网用户都可以访问这些数据,引发了严重的安全风险。 ... [详细]
  • ZooKeeper集群脑裂问题及其解决方案
    本文深入探讨了ZooKeeper集群中可能出现的脑裂问题,分析其成因,并提供了多种有效的解决方案,确保集群在高可用性环境下的稳定运行。 ... [详细]
  • 本文详细介绍了优化DB2数据库性能的多种方法,涵盖统计信息更新、缓冲池调整、日志缓冲区配置、应用程序堆大小设置、排序堆参数调整、代理程序管理、锁机制优化、活动应用程序限制、页清除程序配置、I/O服务器数量设定以及编入组提交数调整等方面。通过这些技术手段,可以显著提升数据库的运行效率和响应速度。 ... [详细]
  • 如何使用Ping命令来测试网络连接?当网卡安装和有关参数配置完成后,可以使用ping命令来测试一下网络是否连接成功。以winXP为例1、打开XP下DOS窗口具体操作是点击“开始”菜 ... [详细]
  • 深入解析Java虚拟机(JVM)架构与原理
    本文旨在为读者提供对Java虚拟机(JVM)的全面理解,涵盖其主要组成部分、工作原理及其在不同平台上的实现。通过详细探讨JVM的结构和内部机制,帮助开发者更好地掌握Java编程的核心技术。 ... [详细]
  • 1.执行sqlsever存储过程,消息:SQLServer阻止了对组件“AdHocDistributedQueries”的STATEMENT“OpenRowsetOpenDatas ... [详细]
  • 本文详细介绍了一种通过MySQL弱口令漏洞在Windows操作系统上获取SYSTEM权限的方法。该方法涉及使用自定义UDF DLL文件来执行任意命令,从而实现对远程服务器的完全控制。 ... [详细]
  • 智能医疗,即通过先进的物联网技术和信息平台,实现患者、医护人员和医疗机构之间的高效互动。它不仅提升了医疗服务的便捷性和质量,还推动了整个医疗行业的现代化进程。 ... [详细]
  • 在尝试使用C# Windows Forms客户端通过SignalR连接到ASP.NET服务器时,遇到了内部服务器错误(500)。本文将详细探讨问题的原因及解决方案。 ... [详细]
  • yikesnews第11期:微软Office两个0day和一个提权0day
    点击阅读原文可点击链接根据法国大选被黑客干扰,发送了带漏洞的文档Trumps_Attack_on_Syria_English.docx而此漏洞与ESET&FireEy ... [详细]
  • 本文回顾了2017年的转型和2018年的收获,分享了几家知名互联网公司提供的工作机会及面试体验。 ... [详细]
  • PostgreSQL 最新动态 —— 2022年4月6日
    了解 PostgreSQL 社区的最新进展和技术分享 ... [详细]
  • 优化Flask应用的并发处理:解决Mysql连接过多问题
    本文探讨了在Flask应用中通过优化后端架构来应对高并发请求,特别是针对Mysql 'too many connections' 错误的解决方案。我们将介绍如何利用Redis缓存、Gunicorn多进程和Celery异步任务队列来提升系统的性能和稳定性。 ... [详细]
author-avatar
mobiledu2502886233
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有