我忘记了 sa 密码并且已经禁用了 Windows 身份验证模式。
如何
提前在禁用Windows身份验证tnx的情况下重置SQL Server sa密码
当用户更改他们的密码时,他们会从浏览器中注销。但是,如果他们同时登录到另一个浏览器,则他们会在另一个浏览器上保持登录状态。
我想在用户重置密码时从他们登录的所有浏览器中注销用户。
这里登录控制器。
function checklogin(Request $request)
{
$this->validate($request, ['email' => 'required|email', 'password' => 'required|string|min:3']);
$user_data = array(
'email' => $request->get('email') ,
'password' => $request->get('password')
);
$remember_me = $request->has('remember') ? true : false;
if (Auth::attempt($user_data, $remember_me))
{
return redirect()->intended('dashboard');
}
else
{
return back()->with('error', 'Wrong Login Details');
}
}
Run Code Online (Sandbox Code Playgroud)
发送邮件功能如下
function sendEmail(Request $request)
{
$this->validate($request, ['email' => 'required|exists:users']);
$email = $request->email;
$name = User::where('email', $email)->first();
$name = $name->name;
$token = Password::getRepository()->createNewToken();
$link = url("password/reset?email=$email&token=$token");
$value = Password_resets::where('email', $email)->first();
if (isset($value))
{ …Run Code Online (Sandbox Code Playgroud) 当用户忘记密码时,您不应通过电子邮件发送密码.在他的Pluralsight课程" Hack Yourself First:How to on the Cyber-Offense "中,Troy Hunt声称"SMTP上没有隐含的传输层安全性".信息安全堆栈交换的这个答案证实,以明文(包括通过电子邮件)发送或存储密码是一个坏主意.
似乎重置密码的正确方法是不立即重置密码.相反,通过电子邮件向用户发送限时激活链接.这需要用户的人工干预,并且在任何阶段都不通过电子邮件传递密码.
上述信息安全性答案描述了如何实现密码重置机制:
不要重置用户的密码,不管是什么- "复位"密码是用户记住,这意味着他/她必须要么改变它或将它写下来更难-说,在明亮的黄色便利贴的边缘了监控.相反,只需让用户立即选择一个新的 - 这也是他们想要做的事情.
如果用户忘记了密码,请使用存储在数据库中的随机生成的重置令牌向他们发送安全的一次性重置链接.令牌必须是唯一且保密的,因此在数据库中对令牌进行散列并在使用链接时对其进行比较.
基于表单的网站身份验证的权威指南同样描述了实现:
始终在数据库中散列丢失的密码代码/令牌.再次,此代码是密码等效的另一个示例,因此必须进行哈希处理,以防攻击者抓住您的数据库.当请求丢失密码代码时,将明文代码发送到用户的电子邮件地址,然后哈希,将哈希值保存在数据库中 - 然后丢弃原始密码.就像密码或持久登录令牌一样.
但是用户将如何真正知道新密码.是否重置为默认值?它是否更改为随机生成的密码,需要以某种方式与用户进行通信?
在" 首先攻击自己:如何进入网络攻击 "中,激活链接将您带到一个可以输入新密码的表单.
如果你正在处理一个网站,那么你可以进入并与网络应用程序交互并选择你自己的新密码.但是使用类似.NET Web API的东西,您正在与通常应该为您提供数据而非用户界面的控制器上的操作进行交互.你不能只是给他们一个链接,并期望他们用它做点什么.
因此,如果您正在通过Web API处理身份验证,那么允许用户重置密码并将新密码传递给他们的有效且安全的方法是什么?
security authentication passwords reset-password asp.net-web-api
我目前正在 Java 项目中实现忘记密码功能。我的方法是,
用户单击忘记密码链接。
在忘记密码页面,系统提示用户输入
他/她在系统中注册的电子邮件地址。
包含给定电子邮件地址和重置密码页面链接的电子邮件。
用户点击链接,他/她被重定向到一个页面(重置密码),用户可以在其中输入他的新密码。
在重置密码页面中,“电子邮件地址”字段是自动填写的
,由于已禁用,因此无法更改。
然后用户输入他的新密码,数据库中与电子邮件地址相关的字段就会更新。
我在我的代码中尝试过这个,但是在我的重置密码页面中,我没有得到想要更改密码的用户的电子邮件 ID。
邮件实用程序
package com.example.controller;
import java.io.IOException;
import java.security.Security;
import java.sql.Connection;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.Properties;
import javax.mail.Message;
import javax.mail.PasswordAuthentication;
import javax.mail.Session;
import javax.mail.Transport;
import javax.mail.internet.InternetAddress;
import javax.mail.internet.MimeMessage;
import javax.servlet.RequestDispatcher;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServletRequest;
import com.example.util.Database;
public class MailUtil {
private static final String USERNAME = "test@gmail.com";
private static final String PASSWORD = "test";
private static final String SUBJECT = "Reset Password link";
private static final …Run Code Online (Sandbox Code Playgroud) 有没有一种方法可以使用 django 的内置密码重置功能,而无需通过电子邮件或电子邮件选项发送重置链接。我目前正在开发一个简单的系统,其中有几个用户不需要发送电子邮件。提前致谢
我正在尝试覆盖 FOSUserBundle 的重置控制器。我自己的 UserBundle 正在覆盖整个包,它对例如模板工作正常,但这是我第一次尝试覆盖控制器,似乎我做错了什么。
以这种方式尝试(仅在第一行中复制,因为控制器的其余部分仍然是默认的):
namespace UserBundle\Controller\User;
use FOS\UserBundle\Controller\ResettingController as BaseController;
...
class ResettingController extends BaseController{
...
Run Code Online (Sandbox Code Playgroud)
“重置密码”按钮位于我的登录页面上。
我想要实现的是checkEmailAction 的一些自定义。我想检查请求重置密码的人是否是“锁定”用户,并为每个请求发送正确的“响应消息”。控制器的其余部分可以保持不变。我添加了一些转储和一个“死”;进入代码检查是否有任何输出,但没有。
我最好从哪里开始寻找?根据文档https://symfony.com/doc/current/bundles/FOSUserBundle/overriding_controllers.html我不应该比我已经做的更多。
我正在测试Azure B2C AD的“密码重置策略”功能,但我无法使其正常工作。我收到错误消息“找不到提供的用户ID的帐户”。即使我尝试重设密码的用户帐户确实存在。
复制步骤:
1)在Azure AD B2C中创建用户
2)转到Azure门户中的“用户”>“密码重置-属性”,并启用自助服务密码重置(不确定是否需要这样做吗?)
3)使用以下设置在Azure AD b2c中创建密码策略:
4)保存政策
5)在密码重置策略页面上单击“立即运行”
6)输入在步骤1中创建的用户的电子邮件地址,然后单击“发送验证码”
7)输入收到的验证码,然后单击“验证”
8)输入电子邮件地址,然后单击“继续”。
对我来说,结果是以下错误消息:“找不到提供的用户ID的帐户。”
我究竟做错了什么?
用户可以使用 Azure AD B2C 以及包含+. 但是,当单击登录页面上的“忘记密码”链接并输入带有字符的电子邮件时,+会显示以下错误:
我在 Azure 的反馈网站上看到了 2 个相关问题:
允许加号登录电子邮件地址[ 用户Naud van Onna有一条评论与此问题匹配。]
我也看到在电子邮件地址中使用“+”符号成功注册。不幸的是,使用带有“+”符号的电子邮件地址时,密码重置功能无法正常工作。
和
支持电子邮件中的加地址,这对于测试非常有价值[在这一篇中提到了描述我们情况的电子邮件sub-addressing功能。我们使用+电子邮件地址来测试我们的应用程序。]
自定义策略文件中是否有任何位置.xml可以输入自定义正则表达式来验证此电子邮件地址并允许签名+?
我<TechnicalProfile Id="LocalAccountDiscoveryUsingEmailAddress">在TrustFrameworkBase.xml文件中看到了但我不知道在哪里修改它......
<!-- This technical profile forces the user to verify the email address that they provide on the UI. Only after email is verified, the user account is
read from the directory. -->
<TechnicalProfile Id="LocalAccountDiscoveryUsingEmailAddress">
.
.
.
Run Code Online (Sandbox Code Playgroud) regex email-validation forgot-password reset-password azure-ad-b2c
azure-ad-b2c ×2
passwords ×2
azure ×1
controller ×1
django ×1
email ×1
java ×1
jsp ×1
laravel-5.6 ×1
overriding ×1
php ×1
regex ×1
sa ×1
security ×1
servlets ×1
sql-server ×1
symfony ×1