当前位置: 首页 > news >正文

哈尔滨营销型网站建设网站建设行业有什么认证吗

哈尔滨营销型网站建设,网站建设行业有什么认证吗,wordpress只显示摘要,上海品牌设计公司有哪些mongodb启用身份验证支持两因素身份验证#xff08;2FA#xff09;几乎总是一个好主意#xff0c;尤其是对于后台系统。 2FA有许多不同的形式#xff0c;其中一些包括SMS#xff0c;TOTP甚至是硬件令牌 。 启用它们需要类似的流程#xff1a; 用户转到其个人资料页面2FA几乎总是一个好主意尤其是对于后台系统。 2FA有许多不同的形式其中一些包括SMSTOTP甚至是硬件令牌 。 启用它们需要类似的流程 用户转到其个人资料页面如果要在注册时强制使用2fa请跳过此页面 单击“启用双重身份验证” 输入一些数据以启用特定的2FA方法电话号码TOTP验证码等 下次他们登录时除了用户名和密码外登录表单还会请求第二个因素验证码并将其与凭据一起发送 我将重点介绍Google Authenticator它使用TOTP基于时间的一次性密码生成一系列验证码。 想法是服务器和客户端应用程序共享一个密钥。 基于该键和当前时间两者都使用相同的代码。 当然时钟不能完全同步因此服务器会接受一些窗口作为有效代码。 请注意如果您不信任Google的应用程序则可以使用下面的相同库来实现自己的客户端应用程序尽管您可以查看源代码以确保没有恶作剧发生。 如何用Java在服务器上实现它 使用GoogleAuth库 。 流程如下 用户转到其个人资料页面 单击“启用双重身份验证” 服务器生成一个秘密密钥将其存储为用户配置文件的一部分并将URL返回到QR码 用户使用其Google Authenticator应用程序扫描QR码从而在该应用程序中创建新的个人资料 用户在与QR码一起显示的字段中输入应用程序显示的验证码然后点击“确认” 服务器在用户配置文件中将2FA标记为已启用 可选您可以为用户提供一些“便签代码”以防他们丢失应用程序或机密信息时可以写下来。 如果用户不扫描代码或不验证过程则用户个人资料将仅包含孤立的秘密密钥但不会被标记为已启用 应该有一个选项以后可以从其用户个人资料页面禁用2FA 从理论的角度来看最重要的一点是共享密钥。 密码是对称的因此双方身份验证器应用程序和服务器具有相同的密钥。 它通过用户扫描的QR码共享。 如果此时攻击者可以控制用户的计算机则机密可能会泄露从而2FA也会被攻击者滥用。 但这不在威胁模型中换句话说如果攻击者可以访问用户的计算机则无论如何都已经造成了破坏。 注意您可能会看到此过程称为2步身份验证或2因子。 “因素”是“您知道的东西”“您拥有的东西”和“您拥有的东西”。 您可以将TOTP视为“您知道”的另一件事但也可以将带有安全存储的密钥的电话视为“您拥有的”东西。 在这种特殊情况下我不坚持使用任何一种术语。 登录后流程如下 用户输入用户名和密码然后单击“登录” 使用AJAX请求页面询问服务器此电子邮件是否已启用2FA 如果未启用2FA只需提交用户名和密码表格 如果启用了2FA则不会提交登录表单而是显示一个附加字段以允许用户从身份验证器应用程序中输入验证码 用户输入代码并按登录后即可提交表单。 使用相同的登录按钮或使用新的“验证”按钮或使用验证输入按钮可能是一个全新的屏幕隐藏用户名/密码输入。 然后服务器再次检查用户是否启用了2FA如果是则验证验证码。 如果匹配则登录成功。 如果不是则登录失败并且允许用户重新输入凭据和验证码。 请注意根据用户名/密码错误或代码错误您可能会有不同的响应。 您也可以在显示验证码输入之前尝试登录。 这种方法可以说是更好的方法因为这样您就不会向潜在的攻击者透露用户使用2FA。 我说的是用户名和密码这可以适用于任何其他身份验证方法。 从OAuth / OpenID Connect / SAML提供程序获得成功确认之后或者从SecureLogin获得令牌之后您可以请求第二个因素代码。 在代码中上述过程如下所示使用Spring MVC为了简洁起见我将控制器和服务层合并。您可以使用将当前登录的用户详细信息提供给控制器的方式替换AuthenticatedPrincipal位。 假设方法在控制器中映射到“ / user /” RequestMapping(value /init2fa, method RequestMethod.POST) ResponseBody public String initTwoFactorAuth(AuthenticationPrincipal LoginAuthenticationToken token) {User user getLoggedInUser(token);GoogleAuthenticatorKey googleAuthenticatorKey googleAuthenticator.createCredentials();user.setTwoFactorAuthKey(googleAuthenticatorKey.getKey());dao.update(user);return GoogleAuthenticatorQRGenerator.getOtpAuthURL(GOOGLE_AUTH_ISSUER, email, googleAuthenticatorKey); }RequestMapping(value /confirm2fa, method RequestMethod.POST) ResponseBody public boolean confirmTwoFactorAuth(AuthenticationPrincipal LoginAuthenticationToken token, RequestParam(code) int code) {User user getLoggedInUser(token);boolean result googleAuthenticator.authorize(user.getTwoFactorAuthKey(), code);user.setTwoFactorAuthEnabled(result);dao.update(user);return result; }RequestMapping(value /disable2fa, method RequestMethod.GET) ResponseBody public void disableTwoFactorAuth(AuthenticationPrincipal LoginAuthenticationToken token) {User user getLoggedInUser(token);user.setTwoFactorAuthKey(null);user.setTwoFactorAuthEnabled(false);dao.update(user); }RequestMapping(value /requires2fa, method RequestMethod.POST) ResponseBody public boolean login(RequestParam(email) String email) {// TODO consider verifying the password here in order not to reveal that a given user uses 2FAreturn userService.getUserDetailsByEmail(email).isTwoFactorAuthEnabled(); } QR码生成使用Google的服务从技术上讲它也为Google提供了秘密密钥。 我怀疑它们除了生成QR码外还会存储它但是如果您不信任它们则可以实现自己的QR码生成器 那么自己生成QR码应该不难 。 在客户端它是对上述方法的简单AJAX请求旁注我觉得AJAX一词不再流行但我不知道如何称呼它们。是异步的还是背景的Javascript。 $(#two-fa-init).click(function() {$.post(/user/init2fa, function(qrImage) {$(#two-fa-verification).show();$(#two-fa-qr).prepend($(img,{id:qr,src:qrImage}));$(#two-fa-init).hide();}); });$(#two-fa-confirm).click(function() {var verificationCode $(#verificationCode).val().replace(/ /g,)$.post(/user/confirm2fa?code verificationCode, function() {$(#two-fa-verification).hide();$(#two-fa-qr).hide();$.notify(Successfully enabled two-factor authentication, success);$(#two-fa-message).html(Successfully enabled);}); });$(#two-fa-disable).click(function() {$.post(/user/disable2fa, function(qrImage) {window.location.reload();}); }); 登录表单代码在很大程度上取决于您正在使用的现有登录表单但是重点是使用电子邮件和密码调用/ requires2fa以检查是否启用了2FA然后显示验证码输入。 总体而言两因素身份验证的实现很简单我建议在大多数系统中使用它因为安全性比简单的用户体验更为重要。 翻译自: https://www.javacodegeeks.com/2017/10/enabling-two-factor-authentication-web-application.htmlmongodb启用身份验证
http://www.huolong8.cn/news/127888/

相关文章:

  • 怎样给自己做网站耳机商城网站开发
  • html公益网站模板北京十大影视公司
  • 做网站首页应该考虑什么山东天成建设工程有限公司网站
  • 哪里有好的免费的网站建设建设与管理局网站
  • 可登录的网站有哪些下载安装注册app
  • 外贸php网站源码达内网站开发课程
  • 山西做网站推广为什么简洁网站会受到用户欢迎
  • 郑州做网站公司msgg含山县建设局网站下载
  • 房屋网站模板制作网页系统
  • 无锡做网站企业做箱包关注哪个网站
  • 网站版式在国外视频网站做中国美食
  • 高级网站开发培训自己做的视频网站如何赚钱
  • 陕西交通建设集团网站贴吧wordpress文章上下一篇 图片
  • 随州做网站公司网站建设开题报告论述
  • 美橙网站开发wordpress带会员中心模板
  • 长春做网站优化网站如何优化
  • 定制网站成本多少网页设计教程详细步骤ppt
  • 企业发展历程网站wordpress系列教程
  • 网站seo描述wordpress进不去仪表盘
  • 重庆网站设计免费看视频的软件是什么
  • 网站开发转移合同网站模版上线需要什么
  • 响应式网站效果图做多大的青岛网站建设运营
  • 上海做网站哪家便宜芙蓉建设官方网站
  • 长沙网站建设及推广公司智慧团建网站密码忘了
  • 阿里巴巴外贸学院北京网站优化
  • 海口网站建设美丽17模板网站
  • 什么叫商城网站吉林省建设工程安管人员管理系统
  • 下沙网站建设网站开发人才培养目标
  • 免费的开源网站企业网站建设研究目的意义
  • 高效网站建设公司从源码安装wordpress