好吧,这可能听起来像一个奇怪的问题.在跳我之前请仔细阅读好吗?;-)
想象一下这种情况:
好的,是的,我意识到这听起来很奇怪.是的,整个会话都在SSL中,所以你可以发送密码明文.是的,我意识到可以安全地存储明文密码.
以下是我的观点:对我们的业务来说,真实地说"我们永远不会知道您的密码"是有用的.
注意我不是说"我们不以明文形式存储您的密码",但我们真的,从来没有,知道它; 你永远不会把它给我们.
(想要这个的原因是不相关的,足以说用户的密码用于其他东西,例如文件加密).
是的,我意识到你可能会说正常的做法是"在你进行散列时,密码只能在内存中以明文形式显示5ms",但这更多是关于否定性.即,我们可以说100%我们甚至没有收到您的密码.
好的,这就是问题所在:
以前有人做过或听说过这种事吗?
这样做有什么安全隐患?
我很难看到一个缺点.例如:
好的,你现在可以跳我:)
想法,欢迎评论.
谢谢,
约翰
更新:只是想澄清:我并不是说这在某种程度上改善了身份验证过程的安全性.但是,它允许用户的"真实"密码保持秘密,即使是从服务器.因此,如果真实密码用于加密文件,则服务器无权访问.
我完全满足于我想要这个的原因,问题是它是否会妨碍身份验证过程的安全性.
我想用JavaScript禁用ASP.NET RequiredFieldValidator.其实我正在使用以下代码:
function doSomething()
{
var myVal = document.getElementById('myValidatorClientID');
ValidatorEnable(myVal, false);
}
Run Code Online (Sandbox Code Playgroud)
这会禁用验证器.但我的问题是,我正在使用ValidationSummary.即使我禁用验证器,此摘要也会显示验证消息.
有人能告诉我,如何在ValidationSummary中禁用验证器?
以下代码行编译得很好并且表现得很好:
list<const int *> int_pointers; // (1)
Run Code Online (Sandbox Code Playgroud)
以下两行不是:
typedef int * IntPtr;
list<const IntPtr> int_pointers; // (2)
Run Code Online (Sandbox Code Playgroud)
我得到完全相同的编译错误
list<int * const> int_pointers; // (3)
Run Code Online (Sandbox Code Playgroud)
我很清楚最后一行不合法,因为STL容器的元素需要可分配.为什么编译器解释(2)与(3)相同?
所以我可能在这里有一个相当独特的用例,但我认为它应该工作 - 但它不能正常工作.
基本上,我有一个使用静态工厂方法(create)的类,它将shared_ptr返回给新创建的类实例.这个类还有一个虚函数,我想从python中重写并从C++调用.
也许我的代码可以比我的话更清楚地表达思想:
#include <string>
#include <iostream>
#include <boost/python.hpp>
#include <boost/enable_shared_from_this.hpp>
using namespace boost::python;
using namespace boost;
//~ Base Class ClassA
class ClassA
: public enable_shared_from_this<ClassA>
{
protected:
ClassA(){}
public:
static shared_ptr<ClassA> create(){ return shared_ptr<ClassA>( new ClassA() ); }
virtual void quack(){ std::cout<<"quacks like a ClassA Base"<<std::endl; }
};
//~ Wrapper for ClassA
struct WrapClassA : public ClassA, wrapper<WrapClassA>
{
static shared_ptr<WrapClassA> create(){ return shared_ptr<WrapClassA>( new WrapClassA() ); }
void quack()
{
std::cout<<"quacking like a Wrapper..."<<std::endl;
if (override …
Run Code Online (Sandbox Code Playgroud) 所以我遇到的问题是用像素(px)扩展名改变我的#scroll top:value.
#container {
height:100px;
overflow:hidden;
}
#scroll {
position:relative;
top:0px;
}
<div id="container">
<p>
<a id="up">Up</a>
</p>
<div id="scroll">up down blah</div>
</div>
$(function(){
$("#up").hover(function(){
var topVal = $( 0 + "px");
$("#scroll").css("top", topVal-10 + "px");
});
Run Code Online (Sandbox Code Playgroud) 我在将问题安装Delphi 2007 RAD Studio Professional到Windows 7 64位企业版上时遇到问题.
一切都很好,直到我输入安装的序列号.输入并单击安装向导中的下一个按钮后,我在第906行收到安装脚本错误.确定该错误会关闭安装程序.
我已经做了一些谷歌搜索,但还没有发现任何类似的东西(虽然我已经找到很多引用,已经在各种版本的64位窗口上安装了它,并有其他问题的人).
我已经能够在同一台机器上安装Delphi 2009而没有任何问题.
我真的很想安装2007,因为这是我们目前的主要Delphi开发IDE.
我如何确保两次逃脱?
我听说它是一种很好的做法,可以在从表单中接收值时转义值,并在输出时转义.这样你就有两次抓住机会的机会.
我有以下代码:
public class OMyObject
{
public int Id { get; set; }
public string Value { get; set; }
public DateTime? MyDate { get; set; }
}
Run Code Online (Sandbox Code Playgroud)
我也有这个代码:
public static class ObjectExtension
{
public static List<OMyObject> Sort<T>(this List<OMyObject> o, Func<OMyObject, T> keySort, ESortDirection direction) where T : IComparable
{
if (direction == ESortDirection.asc)
{
o.Sort((a, b) => keySort(a).CompareTo(keySort(b)));
}
else
{
o.Sort((a, b) => keySort(b).CompareTo(keySort(a)));
}
return o;
}
}
Run Code Online (Sandbox Code Playgroud)
现在我有一个测试控制台应用程序,它执行以下操作:
var myObjectList = new List<OMyObject>
{
new OMyObject {Id …
Run Code Online (Sandbox Code Playgroud) 我对上下文切换有疑问.在多线程中,当发生上下文切换时,两个上下文切换之间的时间是多少?它是固定的时间间隔吗?
我的工作区内有一个文件夹,但在'src'之外,其中包含一个文件,需要在使用自定义插件向导时设置新文件.
除非我确切地指定文件在系统中的位置,否则我无法正确获取此文件的位置并继续获取空指针.我的问题是文件是在一个插件项目中,我无法得到它的位置.
插件中的文件位置是com.my.plugin/rules/setup.txt
c++ ×2
java ×2
asp.net ×1
boost ×1
c# ×1
containers ×1
cryptography ×1
css ×1
delphi ×1
delphi-2007 ×1
eclipse ×1
escaping ×1
generics ×1
hash ×1
html ×1
http-digest ×1
installer ×1
javascript ×1
jquery ×1
jsp ×1
plugins ×1
python ×1
scheduling ×1
ssl ×1
stl ×1
typedef ×1
windows ×1
xss ×1