Codeigniter 会话安全

2024-01-18

如何提高会话的安全性?

$this->session->userdata('userid')

我一直在为我的 ajax 调用而抛弃这个小坏男孩。有些情况我没有。然后我就想,使用 DOM 中的 id 真的安全吗?如果 DOM 被更改以破解用户帐户数据怎么办?所以我想每当用户做一些与他们的 id 相关的事情时,只有会话应该被引用。我对吗?

像这样引用:

$this->some_model->do_data_stuff($dataId, $this->session->userdata('userid'));

然后我读到了这个:

而存储在用户 cookie 中的会话数据数组包含 会话 ID,除非您将会话数据存储在数据库中,否则没有 方法来验证它。对于一些需要很少或不需要的应用 安全性,可能不需要会话 ID 验证,但如果您 应用程序需要安全性,验证是强制性的。否则,一个 用户可以通过修改其 cookie 来恢复旧会话。http://codeigniter.com/user_guide/libraries/sessions.html http://codeigniter.com/user_guide/libraries/sessions.html

我不会存储财务数据,但我不希望我的网站上的任何数据被损坏。 SO 使用会话验证吗?此验证需要多少开销?会话如何被黑客入侵?会话安全需要注意哪些事项?


使用 CodeIgniter 会话带数据库将会相当安全。您只是不必相信用户提供的输入。即使您使用 AJAX,CodeIgniter 会话也将像任何标准调用一样工作,因此具有相同的安全性。

CodeIgniter 会话发生的情况是,服务器存储 cookie,每次用户执行会更改 cookie 内容的操作时,都会首先将其与之前的 cookie 进行比较。

如果用户更改了浏览器中会话 cookie 的内容,CodeIgniter 将在下一次服务器调用时注意到,并为用户创建一个新会话,基本上将其注销。

CodeIgniter 实际上并不需要用户浏览器中 cookie 中存储的数据,并且只要您使用

$this->session->userdata('userid');

您将获得可信的服务器端数据。用户无法改变这一点。此外,cookie 可以加密,您应该对其进行加密。只需查看 CodeIgniter 的 config.php 即可。

围绕会话数据还有其他几种保护措施:短刷新超时(通常为 300 秒)、检查 IP 是否更改以及浏览器是否更改。换句话说,在最坏的情况下,欺骗会话数据的唯一方法是使用相同版本的浏览器、相同的 IP、直接访问计算机来复制/粘贴 cookie,然后完成此操作5分钟内。

所以,要小心坐在你旁边的那个人!

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Codeigniter 会话安全 的相关文章

  • CodeIgniter:将参数从视图传递到控制器?

    编辑 现在使用下面的代码 我不确定如何正确打印书签和标签 我对 CI 完全陌生 最近遇到了障碍 我非常不确定如何将函数参数从视图文件传递到控制器 以便我可以在函数上使用它 我在视图上有一个 foreach 循环 遍历函数 get lates
  • 如何正确转义 mysql“搜索/喜欢”查询?

    Summary 我目前正在使用 search field LIKE this gt db gt escape like str search string 逃避动态创建的搜索查询 创建的 SQL 语句结果不会产生任何错误 也不会产生任何结果
  • 优雅地终止 WCF 服务 - 完成所有打开的会话并限制新会话

    我有一个我编写的 WCF 服务 它托管在 Windows 服务中 它以 PerSession 模式运行 该服务允许客户端通过该服务远程打开文件 更改文件以及关闭文件 到目前为止一切工作都非常顺利 当 Windows 服务停止时 我希望能够让
  • MPDF 未定义索引错误

    我正在使用 MPDF 库将 HTML 转换为 PDF 这是我的代码 HTML HTML CONTENT GOES HERE HTML STRING MPDF gt WriteHTML html Converting MPDF gt Outp
  • 生产中未使用快速会话设置 Cookie

    我的应用程序分为客户端和服务器 客户端是托管在 Now sh 上的前端 Nextjs 应用程序 服务器是使用 Express 创建并托管在 Heroku 上的后端 因此域是 client app now sh 和 server app he
  • CodeIgniter:使用多维 POST 数据验证表单

    所以框架是CodeIgniter 2 0 2 我有一个表单 其中包含与数据库中的行相对应的字段组 字段名称的格式为 opt 0 foo opt 0 bar opt 1 foo opt 1 bar etc 索引 1 2等 并不对应于数据库中的
  • 如何更改 Codeigniter 中的配置文件路径?

    我使用 Codeigniter 框架 你知道当我尝试加载配置文件然后使用它时 我做了类似的事情 this gt load gt config myconfig TRUE myconfig php 文件位于应用程序文件夹内 applicati
  • 删除 servlet 中的 cookie 时出现问题

    我尝试使用以下代码删除 servlet 中的 cookie Cookie minIdCookie null for Cookie c req getCookies if c getName equals iPlanetDirectoryPr
  • 会话过期后如何重定向到登录页面?

    我有三个 JSF 2 0 Web 模块 当会话过期时我需要重定向到登录页面 我已经尝试过使用HttpSessionListener 它正在调用sessionDestroyed 事件方法 但我无法在那里转发 重定向请求 我认为这是因为没有Ht
  • 如何在 C# 中将 cookie 过期设置为“会话”?

    不言自明 在 PHP 中 解决方案是将 cookie 过期设置为 0 我不确定 C 因为它需要 DateTime 值 的文档Cookie 过期 http msdn microsoft com en us library system net
  • PHP session.cookie_secure:设置为 true 时禁用会话

    当我设置以下配置时 ini set session cookie secure 1 我的整个应用程序的会话被禁用 我无法再写入或读取会话变量 sessionName us session name sessionName ini set s
  • 有没有办法阻止 iOS 上的 Safari 在关闭时清除网站的 cookie?

    我的移动网络应用程序的一位用户抱怨说 每次他关闭手机屏幕后使用该应用程序时 他都必须重新登录该应用程序 发生的情况是 当屏幕关闭时 或者当您通过双击主页按钮并滑开 Safari 来完全关闭 Safari 时 Safari 会清除该网站的 C
  • 如何在之前的 Facebook 身份验证后自动安全地让用户登录?

    用户抱怨他们必须过于频繁地登录 如果身份验证完全基于 Facebook OAuth 那么用户如何在下次访问该页面时自动登录 用户流程示例 用户点击 使用 Facebook 登录 用户通过 Facebook 进行身份验证并被重定向回网站 用户
  • 浏览器关闭时 Omniauth 会话过期

    在我的 Rails 3 应用程序中 我使用 Omniauth 进行用户身份验证部分 fb twitter 实际上我遵循这个 https github com RailsApps rails3 mongoid omniauth https g
  • 在会话 cookie 中存储大量数据会产生什么影响?

    谁能解释一下在会话中存储大量数据的缺点或给我指出一些阅读材料 我也很感兴趣在会话中存储数据和从数据文件读取数据之间是否有任何区别 如果您在会话中存储大量数据 则输入 输出性能会下降 因为会有大量读取 写入 默认情况下 PHP 中的会话存储在
  • session_regenerate_id 没有创建新的会话 id

    我有一个脚本 旨在完成当前会话并开始新的会话 我使用了一段代码 它在我的开发计算机上运行良好 但是 当我将其发布到生产服务器时 会话 ID 始终保持不变 以下是我重新启动会话的代码 session start SESSION array P
  • 服务器上的 Rails 会话

    我想让一些 Rails 应用程序在不同的服务器上共享同一个会话 我可以在同一服务器内完成此操作 但不知道是否可以在不同服务器上共享 有人已经做过或者知道怎么做吗 Thanks Use the 数据库会话存储 https github com
  • 将数据库中的用户 ID 添加到 Codeigniter 中的会话数据中?

    我是 CodeIgniter 的新手 在从数据库添加用户 ID 用户登录后 到会话数据时遇到问题 这是我的代码问题 之前可能会在 SOF 上被问到 在付出了所有努力之后 我问这个 登录模型
  • 显式删除会话cookie会产生什么影响?

    我使用 php session 来维护用户的会话 Session 在登录后创建 在注销或超时后销毁 我需要管理面板中的一个选项来强制注销任何用户 如果他在网站上处于活动状态 我怎样才能做到这一点 我正在考虑删除临时会话文件 这应该有效地破坏
  • 将 OAuth WRAP 访问令牌直接保存在客户端计算机上的 cookie 中吗?

    我计划建立一个可以访问 oauth 包装框架的网站 我正在考虑将访问令牌按原样存储在客户端计算机上 我不想在服务器上维护临时令牌等数据库 我应该做吗 或者我应该加密它 首先 为什么他们不使用 OAuth 2 0 您可以将 OAuth 凭据存

随机推荐

  • 如果不存在相同的整行,MySQL INSERT

    我有一个包含 10 列的表 我必须从 CSV 文件添加很多很多行 当然 我不能添加两个相同的行 因此我需要一个 SQL 语句 如果整行确实存在 则忽略该命令 仅当所有字段都相同时才必须忽略 INSERT 两行可能有相同的field1 or
  • ActiveRecord:返回对象时隐藏列

    是否有一种开箱即用的方法可以在返回 ActiveRecord 对象时始终隐藏 删除列 例如 User password 使用内置序列化 您可以覆盖as json模型上的方法来传递其他默认选项 class User lt ActiveReco
  • 如何在 Robolectric 中测试选项菜单项的可见性?

    我想断言菜单项的可见性 但是 我的菜单项总是返回 true 我正在使用以下代码来扩充我的菜单 SherlockMenuInflater inflater new SherlockMenuInflater activity MenuBuild
  • simplecursoradapter textview 给出 nullpointerException

    我有两个 xml 文件 一个是列表视图 另一个是列表视图和一些 texview 的布局 我想更改第二个 xml 文件中文本视图的颜色 这就是我到目前为止所做的 main1 xml
  • Laravel Eloquent `take` 和 `orderBy`

    当我尝试使用每个 take 和 orderBy 查询时 模型返回一些记录 this gt hasMany App User gt take 3 this gt hasMany App User gt orderBy id desc 但是当我
  • 如何在CSS中制作具有透明度的径向渐变

    我想在透明度变化的地方制作一个径向渐变 我可以让它线性工作 但不是径向工作 background webkit gradient linear left top left bottom from rgba 50 50 50 0 8 to r
  • 具有高多边形网格的 OpenGL 3D 光线拾取

    如何在包含高多边形网格的模型的 3D 场景中实现 3D 光线拾取 迭代所有三角形来执行三角形线相交测试需要花费太多时间 我知道存在八叉树等方法 并且应该可以将这些方法用于场景中的模型 但我不知道应该如何在网格级别使用这些概念 但是 如果您在
  • GWT - 如何编译移动排列

    我知道如何使用延迟绑定为不同的用户代理编译 GWT 应用程序 但这似乎没有提供区分桌面 移动浏览器的方法 除了制作基于 gwt mobile webkit 的新应用程序之外 如何将现有的 GWT 应用程序转换为具有重新设计的移动界面 如果您
  • 如何使maven-compiler-plugin不隐藏错误源位置

    也许有一个maven compiler plugin这个选项 但我还没有找到 When javac直接运行并打印错误 在消息的第一行之后 它显示受影响的源行下一行上有一个插入符号指向错误位置 它看起来像这样 com invariantpro
  • 确保泛型类型在 Typescript 中仅具有原始属性

    我有一个采用泛型类型的函数 我需要确保该类型是 JSON 可序列化的 也称为仅原始属性 我的尝试是为 JSON 兼容类型定义一个接口 并强制我的泛型扩展此类型 type JSONPrimitive string number boolean
  • 如何通过按键终止 while 循环?

    我正在读取串行数据并使用 while 循环写入 csv 文件 我希望用户一旦觉得已经收集了足够的数据就能够终止 while 循环 while True do a bunch of serial stuff if the user press
  • swift 中 DispatchQueue 类型之间的区别

    据我了解 Swift 中有 3 种类型的 DispatchQueue 主要 连续剧 主线 全球 并发 后台线程并行工作 自定义 并发或串行 每一个都可能有效 异步或同步 第一个问题 主队列是否在工作仅 UI 线程并且不在另一个线程上工作 如
  • 为什么反应路由器在 vercel 上不起作用?

    我正在尝试将无服务器网络发布到 vercel 我想使用react router 这在我的计算机上运行良好 但是当我部署它时它不起作用 有人可以帮助我吗 我想在没有服务器的情况下完成 My main code import React fro
  • ServiceLocator 是一种反模式吗? [关闭]

    Closed 这个问题是基于意见的 help closed questions 目前不接受答案 最近我读过马克 西曼的文章 http blog ploeh dk 2010 02 03 ServiceLocatorisanAnti Patte
  • 如何在 Android 上设置 ImageView 的背景颜色?

    我尝试了一些方法 但没有任何效果 我试图更改 Android 上 ImageView 上的背景颜色 但没有任何反应 这是我的 xml
  • CSS3“提升角”不透明度阴影

    我一直在玩一些 CSS3 阴影效果 我非常喜欢 升角 效果 但在尝试向元素添加不透明度时遇到了问题 我的问题是 有没有办法在不透明的元素上创建 升角 效果 http jsfiddle net WAvZu http jsfiddle net
  • 为什么我的 Android 应用程序在类开头使用 findViewById(R.id.******) 初始化变量时会崩溃并出现 NullPointerException?

    此代码 带有注释的顶部块 成功运行 public class MainActivity extends AppCompatActivity EditText username EditText findViewById R id editT
  • 多列索引还需要单列索引吗?

    我陷入了一个设计不佳的系统中 现在我正在他们的数据库上做DBA 我有很多像下面这样的情况 伪代码 Table t1 c1 c2 c3 c4 key c1 key c2 key c1 c2 key c1 c2 c3 单列索引真的有必要吗 因为
  • 如何获取 Objective C(Foundation 框架)中命令行工具的可执行路径?

    我正在尝试找出一种方法来识别 Objective C 中命令行工具的可执行路径 因此 如果可执行文件是 Applications Utils MyTool 则该方法将返回 Applications Utils 我正在使用基础框架 称我为纯粹
  • Codeigniter 会话安全

    如何提高会话的安全性 this gt session gt userdata userid 我一直在为我的 ajax 调用而抛弃这个小坏男孩 有些情况我没有 然后我就想 使用 DOM 中的 id 真的安全吗 如果 DOM 被更改以破解用户帐