首页 > 网站建设 >

PHP网站建设时怎样坚决会话安全问题?

发布时间:2019-01-15 作者:深圳网站建设

 对于PHP网站建设应该怎样解决会话安全问题,会话安全PHP不能保证会话信息只能被会话者看到。根据其存放的数据,还需要采取更多措施来主动保护会话的完整性。当然这些做法会降低用户的方便程度。深圳网站建设公司统计了下面行为都会将会话ID泄露给第三方,使第三方能够访问所有与指定ID相关联的资源。
★ URL携带会话ID。如果连接到外部站点,包含有会话ID的URL可能会被存在外部站点的引用日志中。
★ 如果会话ID未加密,以明文方式在网络中传输,就很容易被第三方监听到。在默认情况下,所有与特定会话相关的数据都被存储在由配置选项session.save_path指定的目录下的一个文件中。对每个会话会建立一个文件。这是由于每打开一个会话即建立一个文件,不论是否有数据写入到该文件中。为此用户需要学习和使用会话加密方法,具体说明如下。
★ session_encode:对Session信息进行编码。stringsession_encode(void);
该函数返回的字符串中包含全局变量中各变量的名称与值,如a|s:12:"itisatest";c|s:4:"lala";。a是变量名,s:12代表变量a的值"itisatest"的长度是12,变量间用分号“;”分隔。
★ session_decode:对Session信息进行解码。booleansession_decode(stringdata)该函数可对Session信息进行解码,成功则返回逻辑值true。PHP5不再使用session_id,而是把它变成一个常量SID,并保存在Cookie中。如果客户端禁用了Cookie,PHP会自动通过URL自动传动SID,其条件是设置php.ini中的session.use_trans_sid=1。最后使用strip_tags()输出SID,以避免XSS相关的攻击。很多PHP开发人员喜欢使用Session会话变量,大量使用会话变量能够帮助你设计更多人性化的功能。仔细分析原因:
★ 传递简单。在Web应用程序内的页面间传递一个变量值,使用Session变量要比通过查询字符串传递变量值更简单。
★ 使用方便。各位网站开发者可以在任何时候直接使用Session变量。
★ 更容易设计出针对不同用户的设计体验。Web设计的趋势就是要以用户体验为中心,自然使用Session变量是最佳选择。但是当初学者逐渐掌握Session的使用时,也应该注意几个问题,避免在开发中乱用Session变量。
★ Session过于依赖进程。Session状态存储在服务器的进程中。所以当inetinfo.exe进程崩溃时,Session会话信息就会全部丢失。
★ Session过于依赖Cookie。用户会话信息都存储在Cookie中,如果客户端完全禁用掉了Cookie功能,Session
提供的功能也就自然失效了。
★ Session作用域的局限性。用户会话信息不能够实现应用程序之间迁移。例如,百度网站的Web服务器可能不止一个,当用户登录其中一个频道之后,可能需要去各个频道中浏览,但是每个频道都在不同的服务器上,如果想在这些Web服务器共享Session会话信息就是一个很麻烦的问题。
★ 任何变量和对象都会占用系统资源。Session变量同样需要有单独的运行时间和存储空间。过多地使用Session变量就会导致大量代码冗余,并且使服务器运行成本提高。
★ 当一个用户访问某个页面时,每个Session变量的运行环境便自动生成,这些Session变量可能会在用户离开该页面后仍然保留,直到有效期过后。这必然构成对用户安全的威胁。同时,如果在Session中存储较大的对象(如ADO组件中的Recordsets、Connections对象等),当站点访问量增大时,服务器将会因此而无法正常运行。
★ 由于创建Session变量比较随意,可随时调用,不需要开发者去声明,所以过度使用Session变量将会导致代码阅读性差,而且不好维护。鉴于PHP提供的Session变量存在很多局限性,使得PHP中Session成为了一个更加强大的功能。但是在PHP中,个人建议你要少用Session,只有在必要时选择使用,以简化Web开发。好了,网站建设公司本文关于“PHP网站建设时怎样坚决会话安全问题?”的知识就分享到这里,谢谢关注,博纳网络编辑整理。
 
 
文章标题:PHP网站建设时怎样坚决会话安全问题?
本文地址:https://www.198bona.com/news/2112.html
如果您觉得案例还不错请帮忙分享:

网站建设

网络推广

解决方案

域名主机

建站行业资讯