相关疑难解决方法(0)

基于表单的网站身份验证的权威指南

基于表单的网站身份验证

我们认为Stack Overflow不仅应该是非常具体的技术问题的资源,而且还应该是关于如何解决常见问题变化的一般指导原则."基于表单的网站身份验证"应该是这种实验的一个很好的主题.

它应包括以下主题:

  • 如何登录
  • 如何退出
  • 如何保持登录状态
  • 管理cookie(包括推荐设置)
  • SSL/HTTPS加密
  • 如何存储密码
  • 使用秘密问题
  • 忘记用户名/密码功能
  • 使用nonce来防止跨站点请求伪造(CSRF)
  • OpenID的
  • "记住我"复选框
  • 浏览器自动完成用户名和密码
  • 秘密URL(受摘要保护的公共URL)
  • 检查密码强度
  • 电子邮件验证
  • 还有更多关于 基于表单的身份验证 ...

它不应该包括以下内容:

  • 角色和授权
  • HTTP基本身份验证

请帮助我们:

  1. 建议子主题
  2. 提交有关此主题的好文章
  3. 编辑官方答案

language-agnostic security authentication article http

5311
推荐指数
12
解决办法
59万
查看次数

"根据验证程序,远程证书无效." 使用Gmail SMTP服务器

我收到这个错误:

根据验证程序,远程证书无效.

每当我尝试使用我的C#代码中的Gmail SMTP服务器发送电子邮件时.有人能指出我找到解决这个问题的正确方向吗?

以下是堆栈跟踪...

at System.Net.Security.SslState.StartSendAuthResetSignal(ProtocolToken message, AsyncProtocolRequest asyncRequest, Exception exception)
at System.Net.Security.SslState.CheckCompletionBeforeNextReceive(ProtocolToken message, AsyncProtocolRequest asyncRequest)
at System.Net.Security.SslState.StartSendBlob(Byte[] incoming, Int32 count, AsyncProtocolRequest asyncRequest)
at System.Net.Security.SslState.ProcessReceivedBlob(Byte[] buffer, Int32 count, AsyncProtocolRequest asyncRequest)
at System.Net.Security.SslState.StartReadFrame(Byte[] buffer, Int32 readBytes, AsyncProtocolRequest asyncRequest)
at System.Net.Security.SslState.StartReceiveBlob(Byte[] buffer, AsyncProtocolRequest asyncRequest)
at System.Net.Security.SslState.CheckCompletionBeforeNextReceive(ProtocolToken message, AsyncProtocolRequest asyncRequest)
at System.Net.Security.SslState.StartSendBlob(Byte[] incoming, Int32 count, AsyncProtocolRequest asyncRequest)
at System.Net.Security.SslState.ProcessReceivedBlob(Byte[] buffer, Int32 count, AsyncProtocolRequest asyncRequest)
at System.Net.Security.SslState.StartReadFrame(Byte[] buffer, Int32 readBytes, AsyncProtocolRequest asyncRequest)
at System.Net.Security.SslState.StartReceiveBlob(Byte[] buffer, AsyncProtocolRequest asyncRequest)
at System.Net.Security.SslState.CheckCompletionBeforeNextReceive(ProtocolToken message, AsyncProtocolRequest asyncRequest)
at …
Run Code Online (Sandbox Code Playgroud)

c# email smtp

200
推荐指数
13
解决办法
40万
查看次数

禁用CURLOPT_SSL_VERIFYHOST(libcurl/openssl)的安全后果

启用CURLOPT_SSL_VERIFYPEER和禁用CURLOPT_SSL_VERIFYHOST的安全后果是什么?

ssl curl openssl libcurl ssl-certificate

12
推荐指数
1
解决办法
1万
查看次数

Guzzle禁用证书验证为false,有多不安全?

最近,我发现自己正在使用 Guzzle,同时向另一台服务器发出请求以发布和获取一些数据(在某些情况下是令牌)。但我收到证书无效错误,我什至尝试获取新.pem证书,但 Guzzle 仍然不接受并不断抛出该错误。所以最后,我按照“互联网”所说的做了:

$guzzleClient = new Client([
    'verify' => false
]);
Run Code Online (Sandbox Code Playgroud)

现在,虽然这个解决方案有效,但我不确定它会变得多么不安全。我需要担心吗?如果是,在什么场景下?

security ssl httprequest laravel guzzle6

6
推荐指数
1
解决办法
6244
查看次数

如何保护会话不被盗?

简单测试:

  1. 在一台机器上我登录到站点 (https)
  2. 我在不同机器上进入同一页面(未登录)
  3. 我在第二台机器上的标题中切换了 session_id - 从第一台机器
  4. 在第二台机器上,我获得了第一台机器的所有信息 - 我已登录,可以轻松浏览其数据等。

如何保护会话(可能还有 csrf 令牌)免遭盗窃?

django django-middleware

5
推荐指数
1
解决办法
222
查看次数

MYSQLI_CLIENT_SSL 和 MYSQLI_OPT_SSL_VERIFY_SERVER_CERT 有什么区别?

这是我通常使用 SSL 连接到 MySQL 数据库的方式:

$db = mysqli_init();
mysqli_ssl_set(
    $db,
    NULL,
    NULL,
    '/etc/ssl/my-certs/ssl-ca.crt.pem',
    NULL,
    NULL
);
mysqli_real_connect(
    $db,
    'db.example.com',
    'john',
    '123456',
    NULL,
    NULL,
    NULL,
    MYSQLI_CLIENT_SSL
);
Run Code Online (Sandbox Code Playgroud)

据我了解,该标志是使用 SSL 连接到服务器MYSQLI_CLIENT_SSL所必需的。mysqli::real_connect

今天我偶然发现了 的文档mysqli::options,并注意到它接受MYSQLI_OPT_SSL_VERIFY_SERVER_CERT作为一个选项,但是,唉,它的描述是空白的。所以,我想知道:

  1. 我什么时候需要添加mysqli_options($db, MYSQLI_OPT_SSL_VERIFY_SERVER_CERT, true);
  2. 我什么时候需要使用该MYSQLI_CLIENT_SSL标志?
  3. 我什么时候需要同时设置它们?

php mysqli php-7

5
推荐指数
1
解决办法
4351
查看次数