热门标签 | 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的校园二手交易网站的设计与实现

推荐阅读
  • 本文详细介绍了如何解决DNS服务器配置转发无法解析的问题,包括编辑主配置文件和重启域名服务的具体步骤。 ... [详细]
  • 微信小程序详解:概念、功能与优势
    微信公众平台近期向200位开发者发送了小程序的内测邀请。许多人对微信小程序的概念还不是很清楚。本文将详细介绍微信小程序的定义、功能及其独特优势。 ... [详细]
  • 网站访问全流程解析
    本文详细介绍了从用户在浏览器中输入一个域名(如www.yy.com)到页面完全展示的整个过程,包括DNS解析、TCP连接、请求响应等多个步骤。 ... [详细]
  • 解决Parallels Desktop错误15265的方法
    本文详细介绍了在使用Parallels Desktop时遇到错误15265的多种解决方案,包括检查网络连接、关闭代理服务器和修改主机文件等步骤。 ... [详细]
  • DVWA学习笔记系列:深入理解CSRF攻击机制
    DVWA学习笔记系列:深入理解CSRF攻击机制 ... [详细]
  • 基于Net Core 3.0与Web API的前后端分离开发:Vue.js在前端的应用
    本文介绍了如何使用Net Core 3.0和Web API进行前后端分离开发,并重点探讨了Vue.js在前端的应用。后端采用MySQL数据库和EF Core框架进行数据操作,开发环境为Windows 10和Visual Studio 2019,MySQL服务器版本为8.0.16。文章详细描述了API项目的创建过程、启动步骤以及必要的插件安装,为开发者提供了一套完整的开发指南。 ... [详细]
  • 如何优化MySQL数据库性能以提升查询效率和系统稳定性 ... [详细]
  • REST与RPC:选择哪种API架构风格?
    在探讨REST与RPC这两种API架构风格的选择时,本文首先介绍了RPC(远程过程调用)的概念。RPC允许客户端通过网络调用远程服务器上的函数或方法,从而实现分布式系统的功能调用。相比之下,REST(Representational State Transfer)则基于资源的交互模型,通过HTTP协议进行数据传输和操作。本文将详细分析两种架构风格的特点、适用场景及其优缺点,帮助开发者根据具体需求做出合适的选择。 ... [详细]
  • 解决118错误代码:专业指南与常见解决方案
    解决118错误代码:专业指南与常见解决方案 ... [详细]
  • MySQL 5.7 学习指南:SQLyog 中的主键、列属性和数据类型
    本文介绍了 MySQL 5.7 中主键(Primary Key)和自增(Auto-Increment)的概念,以及如何在 SQLyog 中设置这些属性。同时,还探讨了数据类型的分类和选择,以及列属性的设置方法。 ... [详细]
  • 如何将TS文件转换为M3U8直播流:HLS与M3U8格式详解
    在视频传输领域,MP4虽然常见,但在直播场景中直接使用MP4格式存在诸多问题。例如,MP4文件的头部信息(如ftyp、moov)较大,导致初始加载时间较长,影响用户体验。相比之下,HLS(HTTP Live Streaming)协议及其M3U8格式更具优势。HLS通过将视频切分成多个小片段,并生成一个M3U8播放列表文件,实现低延迟和高稳定性。本文详细介绍了如何将TS文件转换为M3U8直播流,包括技术原理和具体操作步骤,帮助读者更好地理解和应用这一技术。 ... [详细]
  • Web开发框架概览:Java与JavaScript技术及框架综述
    Web开发涉及服务器端和客户端的协同工作。在服务器端,Java是一种优秀的编程语言,适用于构建各种功能模块,如通过Servlet实现特定服务。客户端则主要依赖HTML进行内容展示,同时借助JavaScript增强交互性和动态效果。此外,现代Web开发还广泛使用各种框架和库,如Spring Boot、React和Vue.js,以提高开发效率和应用性能。 ... [详细]
  • 深入探索HTTP协议的学习与实践
    在初次访问某个网站时,由于本地没有缓存,服务器会返回一个200状态码的响应,并在响应头中设置Etag和Last-Modified等缓存控制字段。这些字段用于后续请求时验证资源是否已更新,从而提高页面加载速度和减少带宽消耗。本文将深入探讨HTTP缓存机制及其在实际应用中的优化策略,帮助读者更好地理解和运用HTTP协议。 ... [详细]
  • 如何安装和使用 WinSCP 与 PuTTY:连接 Linux 系统的专业工具指南
    本指南详细介绍了如何在Windows环境中安装和使用WinSCP与PuTTY,以实现与Linux系统的安全连接。WinSCP是一款开源的图形化SFTP客户端,支持SSH和SCP协议,主要用于在本地和远程计算机之间安全地传输文件。用户可以通过官方下载页面获取最新版本的WinSCP和PuTTY,按照简单的步骤完成安装,并利用这些工具进行高效的文件管理和远程操作。 ... [详细]
  • 对于希望在未越狱的iOS设备上修改Hosts文件的苹果用户来说,了解文件的具体位置和操作步骤至关重要。本文将详细介绍如何通过安装最新版本的iTunes来实现这一目标,并提供实用的操作指南,帮助用户轻松完成Hosts文件的编辑。 ... [详细]
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社区 版权所有