皮皮网
皮皮网

【c源码经典书籍】【c 插件编程源码】【dnf飞机辅助源码】php源码授权系统

时间:2024-12-27 15:38:44 来源:usbwebcamera源码

1.单点登录SSO原理和实现
2.如何修改的码授别人的deb包授权系统也就是服务器
3.小旋风蜘蛛池站群平台系统PHP网站源码 X8.5版本 无授权限制
4.分享ZKEYS公有云分销系统部署详细教程
5.最新源支付系统源码 V7版全开源 免授权 附搭建教程

php源码授权系统

单点登录SSO原理和实现

       æ¬¢è¿Žå¤§å®¶å…³æ³¨?github.com/hsfxuebao?,希望对大家有所帮助,要是觉得可以的话麻烦给点一下Star哈

1. 单系统登录机制1.1 / 和?/index.html ?否 同源(协议、域名、端口号相同)

       / 和?/index.html?跨域 协议不同(/ 和?百度一下,你就知道?跨域 主域名不同(test/baidu)

       /? 和 /?跨域 子域名不同(www/blog)

       :/?和 :/?跨域 端口号不同(/)

2.3 多系统解决方案

       è™½ç„¶å•ç³»ç»Ÿçš„登录解决方案很完美,但对于多系统应用群已经不再适用了,为什么呢?

       å•ç³»ç»Ÿç™»å½•è§£å†³æ–¹æ¡ˆçš„核心是cookie,cookie携带会话id在浏览器与服务器之间维护会话状态。但cookie是有限制的,这个限制就是cookie的域(通常对应网站的域名),浏览器发送”,然后将它们的cookie域设置为“baidu.com”,这种做法理论上是可以的,甚至早期很多多系统登录就采用这种同域名共享cookie的方式。然而,可行并不代表好,共享cookie的方式存在众多局限:

       é¦–先,应用群域名得统一;

       å…¶æ¬¡ï¼Œåº”用群各系统使用的技术(至少是web服务器)要相同,不然cookie的key值(tomcat为JSESSIONID)不同,无法维持会话,共享cookie的方式是无法实现跨语言技术平台登录的,比如java、php、.net系统之间;

       ç¬¬ä¸‰ï¼Œcookie本身不安全。

       å› æ­¤ï¼Œæˆ‘们需要一种全新的登录方式来实现多系统应用群的登录,这就是单点登录

3. 单点登录

       ä»€ä¹ˆæ˜¯å•ç‚¹ç™»å½•ï¼Ÿå•ç‚¹ç™»å½•å…¨ç§°Single Sign On(以下简称SSO),是指在多系统应用群中登录一个系统,便可在其他所有系统中得到授权而无需再次登录,包括单点登录与单点注销两部分

3.1 登录

       ç›¸æ¯”于单系统登录,sso需要一个独立的认证中心,只有认证中心能接受用户的用户名密码等安全信息,其他系统不提供登录入口,只接受认证中心的间接授权。间接授权通过令牌实现,sso认证中心验证用户的用户名密码没问题,创建授权令牌,在接下来的跳转过程中,授权令牌作为参数发送给各个子系统,子系统拿到令牌,即得到了授权,可以借此创建局部会话,局部会话登录方式与单系统的登录方式相同。这个过程,也就是单点登录的原理,用下图说明

       ä¸‹é¢å¯¹ä¸Šå›¾ç®€è¦æè¿°:

       ç”¨æˆ·è®¿é—®ç³»ç»Ÿ1的受保护资源,系统1发现用户未登录,跳转至sso认证中心,并将自己的地址作为参数

       sso认证中心发现用户未登录,将用户引导至登录页面

       ç”¨æˆ·è¾“入用户名密码提交登录申请

       sso认证中心校验用户信息,创建用户与sso认证中心之间的会话,称为全局会话,同时创建授权令牌

       sso认证中心带着令牌跳转会最初的请求地址(系统1)

       ç³»ç»Ÿ1拿到令牌,去sso认证中心校验令牌是否有效

       sso认证中心校验令牌,返回有效,注册系统1

       ç³»ç»Ÿ1使用该令牌创建与用户的会话,称为局部会话,返回受保护资源

       ç”¨æˆ·è®¿é—®ç³»ç»Ÿ2的受保护资源

       ç³»ç»Ÿ2发现用户未登录,跳转至sso认证中心,并将自己的地址作为参数

       sso认证中心发现用户已登录,跳转回系统2的地址,并附上令牌

       ç³»ç»Ÿ2拿到令牌,去sso认证中心校验令牌是否有效

       sso认证中心校验令牌,返回有效,注册系统2

       ç³»ç»Ÿ2使用该令牌创建与用户的局部会话,返回受保护资源

       ç”¨æˆ·ç™»å½•æˆåŠŸä¹‹åŽï¼Œä¼šä¸Žsso认证中心及各个子系统建立会话,用户与sso认证中心建立的会话称为全局会话,用户与各个子系统建立的会话称为局部会话,局部会话建立之后,用户访问子系统受保护资源将不再通过sso认证中心,全局会话与局部会话有如下约束关系:

       å±€éƒ¨ä¼šè¯å­˜åœ¨ï¼Œå…¨å±€ä¼šè¯ä¸€å®šå­˜åœ¨

       å…¨å±€ä¼šè¯å­˜åœ¨ï¼Œå±€éƒ¨ä¼šè¯ä¸ä¸€å®šå­˜åœ¨

       å…¨å±€ä¼šè¯é”€æ¯ï¼Œå±€éƒ¨ä¼šè¯å¿…须销毁

       ä½ å¯ä»¥é€šè¿‡åšå®¢å›­ã€ç™¾åº¦ã€csdn、淘宝等网站的登录过程加深对单点登录的理解,注意观察登录过程中的跳转url与参数

3.2 注销

       å•ç‚¹ç™»å½•è‡ªç„¶ä¹Ÿè¦å•ç‚¹æ³¨é”€ï¼Œåœ¨ä¸€ä¸ªå­ç³»ç»Ÿä¸­æ³¨é”€ï¼Œæ‰€æœ‰å­ç³»ç»Ÿçš„会话都将被销毁,用下面的图来说明

       sso认证中心一直监听全局会话的状态,一旦全局会话销毁,监听器将通知所有注册系统执行注销操作

       ä¸‹é¢å¯¹ä¸Šå›¾ç®€è¦è¯´æ˜Ž:

       ç”¨æˆ·å‘系统1发起注销请求

       ç³»ç»Ÿ1根据用户与系统1建立的会话id拿到令牌,向sso认证中心发起注销请求

       sso认证中心校验令牌有效,销毁全局会话,同时取出所有用此令牌注册的系统地址

       sso认证中心向所有注册系统发起注销请求

       å„注册系统接收sso认证中心的注销请求,销毁局部会话

       sso认证中心引导用户至登录页面

4. 实现

       åªæ˜¯ç®€è¦ä»‹ç»ä¸‹åŸºäºŽjava的实现过程,不提供完整源码,明白了原理,我相信你们可以自己实现。sso采用客户端/服务端架构,我们先看sso-client与sso-server要实现的功能(下面:sso认证中心=sso-server)

       sso-client:

       æ‹¦æˆªå­ç³»ç»Ÿæœªç™»å½•ç”¨æˆ·è¯·æ±‚,跳转至sso认证中心

       æŽ¥æ”¶å¹¶å­˜å‚¨sso认证中心发送的令牌

       ä¸Žsso-server通信,校验令牌的有效性

       å»ºç«‹å±€éƒ¨ä¼šè¯

       æ‹¦æˆªç”¨æˆ·æ³¨é”€è¯·æ±‚,向sso认证中心发送注销请求

       æŽ¥æ”¶sso认证中心发出的注销请求,销毁局部会话

       sso-server:

       éªŒè¯ç”¨æˆ·çš„登录信息

       åˆ›å»ºå…¨å±€ä¼šè¯

       åˆ›å»ºæŽˆæƒä»¤ç‰Œ

       ä¸Žsso-client通信发送令牌

       æ ¡éªŒsso-client令牌有效性

       ç³»ç»Ÿæ³¨å†Œ

       æŽ¥æ”¶sso-client注销请求,注销所有会话

       æŽ¥ä¸‹æ¥ï¼Œæˆ‘们按照原理来一步步实现sso吧!

4.1 sso-client拦截未登录请求

       java拦截请求的方式有servlet、filter、listener三种方式,我们采用filter。在sso-client中新建LoginFilter.java类并实现Filter接口,在doFilter()方法中加入对未登录用户的拦截

public?void?doFilter(ServletRequest?request,?ServletResponse?response,?FilterChain?chain)?throws?IOException,?ServletException?{ HttpServletRequest?req?=?(HttpServletRequest)?request;HttpServletResponse?res?=?(HttpServletResponse)?response;HttpSession?session?=?req.getSession();if?(session.getAttribute("isLogin"))?{ chain.doFilter(request,?response);return;}//跳转至sso认证中心res.sendRedirect("sso-server-url-with-system-url");}4.2 sso-server拦截未登录请求

       æ‹¦æˆªä»Žsso-client跳转至sso认证中心的未登录请求,跳转至登录页面,这个过程与sso-client完全一样

4.3 sso-server验证用户登录信息

       ç”¨æˆ·åœ¨ç™»å½•é¡µé¢è¾“入用户名密码,请求登录,sso认证中心校验用户信息,校验成功,将会话状态标记为“已登录”

@RequestMapping("/login")public?String?login(String?username,?String?password,?HttpServletRequest?req)?{ this.checkLoginInfo(username,?password);req.getSession().setAttribute("isLogin",?true);return?"success";}4.4、sso-server创建授权令牌

       æŽˆæƒä»¤ç‰Œæ˜¯ä¸€ä¸²éšæœºå­—符,以什么样的方式生成都没有关系,只要不重复、不易伪造即可,下面是一个例子

String?token?=?UUID.randomUUID().toString();4.5、sso-client取得令牌并校验

       sso认证中心登录后,跳转回子系统并附上令牌,子系统(sso-client)取得令牌,然后去sso认证中心校验,在LoginFilter.java的doFilter()中添加几行

//?请求附带token参数String?token?=?req.getParameter("token");if?(token?!=?null)?{ //?去sso认证中心校验tokenboolean?verifyResult?=?this.verify("sso-server-verify-url",?token);if?(!verifyResult)?{ res.sendRedirect("sso-server-url");return;}chain.doFilter(request,?response);}

       verify()方法使用/xuxueli/xxl…Downloadgitee.com/xuxueli…Download5.4 文档地址

       ä¸­æ–‡æ–‡æ¡£

5.5 项目结构说明HttpSession?session?=?request.getSession();session.getAttribute("isLogin");.6 基于Token方式部署

       ç”±äºŽå‰åŽç«¯åˆ†ç¦»å¼€å‘的模式较多,这里只介绍基于Token方式部署,在一些无法使用Cookie的场景下,可使用该方式,如需要Cookie查看基于cookie方式部署

5.6.1 认证中心(SSO Server)搭建

       é¡¹ç›®åï¼šxxl-sso-server

       é…ç½®æ–‡ä»¶ä½ç½®ï¼šapplication.properties

HttpSession?session?=?request.getSession();session.getAttribute("isLogin");.6.2 单点登陆Client端搭建

       é¡¹ç›®åï¼šxxl-sso-token-sample-springboot

       maven依赖

HttpSession?session?=?request.getSession();session.getAttribute("isLogin");3

       é…ç½®æ–‡ä»¶ï¼šapplication.properties

HttpSession?session?=?request.getSession();session.getAttribute("isLogin");4

       é…ç½® XxlSsoTokenFilter

HttpSession?session?=?request.getSession();session.getAttribute("isLogin");.6.3 验证 (模拟请求 Token 方式接入SSO的接口)

       ä¿®æ”¹Host文件:域名方式访问认证中心,模拟跨域与线上真实环境

HttpSession?session?=?request.getSession();session.getAttribute("isLogin");6

       åˆ†åˆ«è¿è¡Œ "xxl-sso-server" 与 "xxl-sso-token-sample-springboot"

       è®¤è¯ä¸­å¿ƒæ­å»ºæˆåŠŸåŽï¼Œé»˜è®¤ä¸ºToken方式登陆提供API接口:

       1、登陆接口:/app/login

       code: 表示成功、其他失败

       msg:错误提示

       data: 登陆用户的 sso sessionid

       username:账号

       password:账号

       å‚数:POST参数

       å“åº”:JSON格式

       2、注销接口:/app/logout

       code: 表示成功、其他失败

       msg:错误提示

       sessionId:登陆用户的 sso sessionid

       å‚数:POST参数

       å“åº”:JSON格式

       3、登陆状态校验接口:/app/l

如何修改的别人的deb包授权系统也就是服务器

       服务器的权限设置有两个地方,一个是权系 NTFS 文件系统本身的权限设置,另一个是码授 IIS 下网站->站点->属性->主目录(或站点下目录->属性->目录)面板上。这两个地方是权系密切相关的。下面我会以实例的码授方式来讲解如何设置权限。

       IIS 下网站->站点->属性->主目录(或站点下目录->属性->目录)面板上有:

       脚本资源访问

       读取

       写入

       浏览

       记录访问

       索引资源

       6 个选项。权系c源码经典书籍这 6 个选项中,码授“记录访问”和“索引资源”跟安全性关系不大,权系一般都设置。码授但是权系如果前面四个权限都没有设置的话,这两个权限也没有必要设置。码授在设置权限时,权系记住这个规则即可,码授后面的权系例子中不再特别说明这两个权限的设置。

       另外在这 6 个选项下面的码授执行权限下拉列表中还有:

       无

       纯脚本

       纯脚本和可执行程序

       3 个选项。

       而网站目录如果在 NTFS 分区(推荐用这种)的话,还需要对 NTFS 分区上的这个目录设置相应权限,许多地方都介绍设置 everyone 的权限,实际上这是c 插件编程源码不好的,其实只要设置好 Internet 来宾帐号(IUSR_xxxxxxx)或 IIS_WPG 组的帐号权限就可以了。如果是设置 ASP、PHP 程序的目录权限,那么设置 Internet 来宾帐号的权限,而对于 ASP.NET 程序,则需要设置 IIS_WPG 组的帐号权限。在后面提到 NTFS 权限设置时会明确指出,没有明确指出的都是指设置 IIS 属性面板上的权限。

       例1 —— ASP、PHP、ASP.NET 程序所在目录的权限设置:

       如果这些程序是要执行的,那么需要设置“读取”权限,并且设置执行权限为“纯脚本”。不要设置“写入”和“脚本资源访问”,更不要设置执行权限为“纯脚本和可执行程序”。NTFS 权限中不要给 IIS_WPG 用户组和 Internet 来宾帐号设置写和修改权限。如果有一些特殊的配置文件(而且配置文件本身也是 ASP、PHP 程序),dnf飞机辅助源码则需要给这些特定的文件配置 NTFS 权限中的 Internet 来宾帐号(ASP.NET 程序是 IIS_WPG 组)的写权限,而不要配置 IIS 属性面板中的“写入”权限。

       IIS 面板中的“写入”权限实际上是对 HTTP PUT 指令的处理,对于普通网站,一般情况下这个权限是不打开的。

       IIS 面板中的“脚本资源访问”不是指可以执行脚本的权限,而是指可以访问源代码的权限,如果同时又打开“写入”权限的话,那么就非常危险了。

       执行权限中“纯脚本和可执行程序”权限可以执行任意程序,包括 exe 可执行程序,如果目录同时有“写入”权限的话,那么就很容易被人上传并执行木马程序了。

       对于 ASP.NET 程序的目录,许多人喜欢在文件系统中设置成 Web 共享,实际上这是没有必要的。只需要在 IIS 中保证该目录为一个应用程序即可。如果所在目录在 IIS 中不是很懂你性格源码一个应用程序目录,只需要在其属性->目录面板中应用程序设置部分点创建就可以了。Web 共享会给其更多权限,可能会造成不安全因素。

       剑心总结:也就是说一般不要打开-主目录-(写入),(脚本资源访问) 这两项以及不要选上(纯脚本和可执行程序),选(纯脚本)就可以了.需要asp.net的应用程序的如果应用程序目录不止应用程序一个程序的可以在应用程序文件夹上(属性)-目录-点创建就可以了.不要在文件夹上选web共享.

小旋风蜘蛛池站群平台系统PHP网站源码 X8.5版本 无授权限制

       源码简介:

       x8.5版本更新,带来一系列功能优化与安全提升。

       增加禁止搜索引擎快照功能,保护网站快照不被他人查看。

       引入全局设置与网站分组独立设置,包括流量统计、游客屏蔽/跳转等。

       新增后台限制指定IP登录与后台安全码功能,增强安全性。

       优化禁止非URL规则的网站地址,提升网站访问效率。

       整合redis缓存功能,性能提升达%,显著加速网站响应。

       引入仅蜘蛛爬行才生成缓存选项,公司食堂订餐源码优化搜索引擎抓取。

       添加页面,提供更友好的用户体验。

       支持多国语言的txt库编码识别,增强国际化支持。

       增强新版模板干扰性,提高网站访问安全性。

       蜘蛛防火墙配置更改为分组模式,提供更精细的防护。

       加强防御性能,检测并拒绝特定不安全的HTTP协议攻击。

       提供其他安全防御选项,屏蔽海外用户与蜘蛛访问。

       增强蜘蛛强引功能,仅在指定域名(或泛域名)下进行。

       新增采集数据处理钩子(collect_data),优化数据处理流程。

       调整快捷标签数量设置选项,减轻CPU负担。

       允许自定义UA,模拟蜘蛛或其他终端进行采集。

       增加自定义附加域名后缀功能,支持常见后缀并避免错误。

       修复文件索引缓存文件,确保网站运行流畅。

       优化后台登录,实现保持登录不掉线。

       引入手动触发自动采集/推送功能,兼容宝塔任务计划。

       因百度快速收录策略调整,更换相应链接提交方案。

       支持本地化随机标签,增强内容丰富性。

       加密前台广告标识符,保护用户隐私。

       修正自定义域名TKD不支持某些标签的问题,确保功能完整。

       修复采集数量减少的问题,保证数据采集的准确性。

       调整单域名模式下互链域名规则,避免错误链接。

       修复英文采集问题,确保国际化支持。

       解决清除指定缓存问题,提升管理效率。

       废弃php5.2版本支持,要求关闭php短标签功能,确保兼容性与安全性。

       通过本次更新,源码在功能与安全上实现全面优化,为用户提供更稳定、高效与安全的网站服务。

分享ZKEYS公有云分销系统部署详细教程

       ZKEYS公有云分销系统部署教程

       通过一套全面的云业务管理系统,ZKEYS为您提供低成本、高可用的云服务部署方法。以下是详细的部署步骤:

       步骤1: 准备服务器

       确保服务器具备运行所需环境,如合适的操作系统,特别是PHP需安装Swoole Compiler扩展。

       步骤2: 域名和备案

       使用管局已备案的域名,确保合法性和稳定性。

       步骤3: 授权信息

       获取ZKEYS的授权信息,用于后续的系统设置。

       步骤4: 下载系统源码

       从ZKEYS官网获取分销系统源码,开始安装过程。

       步骤5-8: 安装与配置

       安装ZKEYS公有云分销系统,注意进行授权设置和资源池接口配置,确保系统更新到最新版。

       步骤9: 站点全局设置

       在后台系统中设置接口、上传、会员等基本功能,确保程序正常运行。

       步骤-: 后台权限、产品配置与审核

       分配权限,同步产品资源,设置价格和审核工作流,以管理财务和站务。

       步骤-: 站点设置和任务管理

       完成首页Banner、工单设置,确保站点任务的自动执行。

       总的来说,ZKEYS公有云分销系统的部署虽然细节较多,但只要按照官方文档一步步操作,就能顺利上手。ZKEYS作为小鸟云的品牌,提供了详尽的文档支持,方便用户轻松部署和管理。

最新源支付系统源码 V7版全开源 免授权 附搭建教程

       最新源支付系统源码 V7版全开源,无需授权,提供详尽搭建教程,专门为个人站长设计的聚合免签系统,性能卓越功能丰富。采用轻量化界面UI,解决知识付费与运营赞助难题。基于thinkphp 6.1.4、layui2.9.3与PearAdmin架构,具备实时监控与管理功能,让用户随时掌握系统运营状态。

       系统运行环境包括:

       1. Nignx/Apache/IIS

       2. PHP 8.1

       3. Mysql 5.6 至 5.7版本

       4. Redis

       5. Supervisor

       后台操作界面截图如下:

更多内容请点击【探索】专栏