Codeigniter:在将表单提交给控制器之前如何加密密码?

2023-11-23

我有一个简单的html登录表单

<form method="post" action="http://www.example.com/login">
    <input type="text" name="text_box" />
    <input type="password" name="pass_word" />
    <input type="submit" name="submit">
</form>

当我提交表单并在控制器中时

public function login(){
    $pass_word = $this->input->post('pass_word');
    die($pass_word);
}

这里的问题是,如果我输入,它会显示纯密码123456在控制器中,我得到123456.

  1. 这是安全问题吗?
  2. 任何人都可以通过网络监控工具(例如wireshark?

如何避免这种情况?我可以在发送到控制器之前对视图中的密码进行加密吗?


如果您的发布数据(密码等)被拦截,那么它只会以纯文本形式显示。使用 SSL/HTTPS 将为您发送的数据提供加密。我不会依赖客户端 JavaScript 或任何类似的东西来验证/登录用户。由于使用了安全连接,这也可能会让您的用户更有信心。

首先,我只是阅读了有关 SSL 和 HTTPS 的一般信息,以及 SSL 证书 - Wiki、Google 等都是不错的查找地点,那里有大量信息。

对于将 SSL/HTTPS 与 CI 结合使用,我发现这些很有用:

  • http://sajjadhossain.com/2008/10/27/ssl-https-urls-and-codeigniter/
  • http://nigel.mcbryde.com.au/2009/03/working-with-ssl-in-codeigniter/
  • 如何让 CodeIgniter 使用 SSL 加载特定页面?

特别是强制 ssl 功能奈杰尔的帖子:

在 application/helper 中创建一个名为 ssl_helper.php 的文件

if (!function_exists('force_ssl'))
{
    function force_ssl()
    {
        $CI =& get_instance();
        $CI->config->config['base_url'] =
                 str_replace('http://', 'https://',
                 $CI->config->config['base_url']);
        if ($_SERVER['SERVER_PORT'] != 443)
        {
            redirect($CI->uri->uri_string());
        }
    }
}

function remove_ssl()
{
    $CI =& get_instance();
    $CI->config->config['base_url'] =
                  str_replace('https://', 'http://',
                  $CI->config->config['base_url']);
    if ($_SERVER['SERVER_PORT'] != 80)
    {
        redirect($CI->uri->uri_string());
    }
}

加载助手,然后在任何控制器的构造函数中 需要 ssl,只需插入:

force_ssl();

在您不希望 ssl 的每个控制器中放置:

if (function_exists('force_ssl')) remove_ssl();

这是一种编程方法,另一种方法是使用 .htaccess (如果您使用的是 Apache)。

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

Codeigniter:在将表单提交给控制器之前如何加密密码? 的相关文章

随机推荐

  • 使用 AttachConsole,当我附加的进程正在运行并喷出时,我仍然可以键入并运行其他命令

    使用 AttachConsole 当我附加的进程正在运行并喷出时 我仍然可以键入并运行其他命令 我的程序以表单或命令行运行 如果以参数启动 它将在命令窗口中运行 我使用 AttachConsole 1 将我的进程附加到我调用的命令窗口 它工
  • 从正在运行的进程注入 DLL 后弹出

    我编写了这个函数来将 DLL 注入到正在运行的进程中 DLL Results CDLL Loader InjectDll DWORD ThreadTeminationStatus LPVOID VirtualMem HANDLE hProc
  • 比较今天或昨天的 NSDate

    好吧 我想这个问题已经被问过一千次了 但由于某种原因 答案并没有真正起作用或有其他问题 无论如何 这就是我的 工作 NSCalendar calendar NSCalendar currentCalendar NSDate currentD
  • Angular 指令不评估 ng-repeat 内部

    我有以下设置 应用程序 指令 var app angular module MyApp app directive adminRosterItem function return restrict E scope displayText t
  • FindFirstFileEx 的文件系统支持,仅限于目录

    我正在使用Windows API函数查找第一个文件Ex因为它提供了仅返回给定目录的子目录 忽略文件 的功能 但是 当我使用 required 标志调用此函数时 我仍然会收到文件和目录 MSDN 文档的FindExSearchLimitToD
  • 合法的数组赋值。是否可以?

    在阅读了 K R 书中有关结构的章节后 我决定做一些测试来更好地理解它们 所以我写了这段代码 include
  • OpenIdConnectAuthenticationHandler:message.State 为 null 或为空

    我正在使用 ASP Net Core 应用程序的 UseOpenIdConnectAuthentication 中间件来针对戴尔云访问管理器令牌提供商进行身份验证 设置以提供 OpenId OAuth2 身份验证 以下是代码 app Use
  • 全文搜索是答案吗?

    好的 我有一个看起来像这样的 mySQL 数据库 ID 一个 int 和记录的唯一 ID 标题 项目的名称 描述 项目描述 我想搜索目前我正在使用的关键字的标题和描述 选择 来自 项目 其中标题类似 key 这是可行的 因为数据库中没有太多
  • Memcached:AWS Elasticache 上的自动发现 python 支持?

    我开始将 AWS Elasticache 与我的 django Web 应用程序结合使用 我首先使用自动发现功能将缓存位置设置为唯一端点 但它似乎不起作用 我使用 pylibmc 1 2 2 和 django pylibmc sasl 0
  • 在 Windows Server 2008 上构建 Windows Phone 7 项目

    我的公司正计划针对 Windows Phone 7 进行开发 但是 我们拥有的构建服务器运行的是 Windows Server 2008 根据Windows Phone SDK 发行说明我了解到该 SDK 仅不支持 Windows Serv
  • 有哪些好方法可以防止人们复制我的源代码? [关闭]

    Closed 这个问题需要多问focused 目前不接受答案 我有很多定制的 JavaScript 和布局设计 我想阻止人们使用这些 有没有什么实用的方法可以做到这一点 或者我基本上只需要高兴我的 php 代码没有显示 我想让至少让复制我的
  • 如何查看 git 中忽略的文件列表?

    过去几个月我一直在使用 git 我喜欢 git 我想知道是否有一个命令可以显示项目中被忽略的文件列表 我试过这个git status ignored从项目的根目录 但这似乎还不够 您可以使用clean带有选项的命令 n dry run Do
  • awk:对数组a的非法引用

    我正在尝试使用这个 awk 命令 awk F FILENAME ARGV 1 a FNR 1 FILENAME ARGV 2 for i 1 i lt length a i if match 0 a i print a i 1 16 pas
  • Autohotkey 应用程序特定热键

    我是 Autohotkey 的新手 尽管阅读了这个网站和官方文档 但我还是无法弄清楚这一点 我只想让某些热键仅适用于某些应用程序 例如 如果我在某个游戏中按空格键 我希望它发送 坟墓 但如果我不在该游戏中 我希望空格键正常工作 当我不玩游戏
  • ESLint:插件“react”之间存在冲突

    我在一个整体 npm 组件包内有一个 React 应用程序 React 应用程序用作演示站点 它使用此组件包作为 Storybook 之上的集成步骤 local component package storybook demos react
  • OpenMP while 循环

    我有一个运行多次迭代的代码 只有满足条件时 才会保存迭代的结果 这自然地表示为 while 循环 我试图使代码并行运行 因为每个实现都是独立的 所以我有这个 while nit
  • 如何在log4j.xml中设置过滤器

    HI 在我们的 Web 应用程序中 它打印所有日志 就像 Spring 和 JSF jar 文件一样 这对我们来说不是必需的 如何在 log4j xml 文件中设置为仅针对我们的应用程序进行过滤 Updated 以下是我们用于日志记录的配置
  • 编译器错误:“需要类、接口或枚举”

    我已经花了几个小时对该程序进行故障排除 尝试了几种配置 但没有成功 它是用java编写的 有33个错误 从之前的50个减少 源代码 This program is named derivativeQuiz java stored on a
  • SimpleUrlHandlerMapping的Java配置(Spring boot)

    我有一个现有的 Spring Web 应用程序 它使用两个扩展 AbstractController 的控制器 我想将 Spring Boot 集成到应用程序中 以便我们可以将其作为独立应用程序运行 我面临一个问题 因为 Spring 没有
  • Codeigniter:在将表单提交给控制器之前如何加密密码?

    我有一个简单的html登录表单