Questions tagged «security»

与应用程序安全性和对软件的攻击有关的主题。请不要单独使用此标签,否则会造成歧义。如果您的问题与特定的编程问题无关,请考虑改为在Information Security SE上提问:https://security.stackexchange.com

9
带有令牌参数的https URL:它的安全性如何?
在我们的网站上,我们根据用户的私人信息(通过表格提供)向他们提供模拟。我们希望允许他们稍后再获得其模拟结果,但又不必强迫他们创建登录名/密码帐户。 我们已经考虑过向他们发送带有链接的电子邮件,他们可以从中获取结果。但是,自然地,我们必须保护此URL,因为私有数据受到威胁。 因此,我们打算在URL中传递令牌(如字母和数字的40个字符的组合,或MD5哈希),并使用SSL。 最后,他们会收到这样的电子邮件: 嗨, 在https://www.example.com/load_simulation?token=uZVTLBCWcw33RIhvnbxTKxTxM2rKJ7YJrwyUXhXn上获取结果 你怎么看待这件事?它足够安全吗?对于代币生成,您有什么建议?如何在https请求中传递URL参数呢?
88 security  url  https  token 

14
C ++中隐藏敏感字符串的技巧
我需要在我的C ++应用程序中存储敏感信息(我想保持私有的对称加密密钥)。简单的方法是这样做: std::string myKey = "mysupersupersecretpasswordthatyouwillneverguess"; 但是,在整个strings过程中运行该应用程序(或从二进制应用程序中提取字符串的任何其他程序)将显示上述字符串。 应该使用什么技术来掩盖此类敏感数据? 编辑: 好的,几乎所有人都说过“您的可执行文件可以进行反向工程” -当然!这是我的宠儿,所以在这里我要大声疾呼: 为什么在该站点上所有与安全相关的问题中有99%(好的,所以我可能会夸张地说)用“没有可能创建完美安全的程序的方法”的洪流回答-这无济于事回答!安全性是介于完美可用性和一端没有安全性,而另一端是完美安全性却没有可用性之间的滑动标度。 关键是要根据您要执行的操作以及软件运行的环境,在此滑动标尺上选择位置。我不是在为军事安装编写应用程序,而是在为家用PC编写应用程序。我需要使用已知的加密密钥在不受信任的网络上加密数据。在这些情况下,“通过隐蔽性实现安全”可能就足够了!当然,有足够时间,精力和技能的人可以对二进制文件进行反向工程并找到密码,但是您猜怎么着?我不在乎: 实施一流的安全系统所花的时间要比由于破解版本而导致的销售损失要昂贵得多(不是我实际上是在出售此产品,但我明白了)。至少可以这样说,在新程序员中,这种蓝天式的“让它以绝对最佳的方式做到这一点”的趋势是愚蠢的。 感谢您抽出宝贵的时间来回答这个问题-他们最有帮助。不幸的是,我只能接受一个答案,但是我投票赞成所有有用的答案。

2
用户定义的表类型是否拒绝EXECUTE权限?
我对SQL Server 2008中的用户定义表类型有疑问。 为了满足ASP.NET应用程序之一的需要,我们在SQL Server 2008上定义了自己的表类型,以将它们用作存储过程中的参数(在ASP.NET应用程序中执行sql命令时,我们将DataTable对象作为存储过程的参数传递请看这里的例子) 问题是,当我们从ASP.NET运行Sql命令(执行存储过程)时,出现错误: 对对象'ourTableType',数据库'ourDatabase',模式'ourSchema'的EXECUTE权限被拒绝。 为什么呢?为什么我们需要对用户定义的表类型设置权限?为什么仅在使用权限的存储过程上设置权限还不够?如果我们要设置它,不管是什么,为什么没有EXECUTE在属性窗口的任何许可类型集(我只看到Control,References,Take Ownership,View Definition)? 我还不明白的是,Control在属性窗口中将权限设置为可以解决问题,并且存储过程可以正常运行。


5
什么是适用于移动应用的OAuth 2.0流程
我正在尝试使用OAuth 2.0在Web API中为移动应用程序实现委托授权。根据规范,隐式授予流不支持刷新令牌,这意味着在特定时间段内授予访问令牌后,一旦令牌到期或被吊销,用户必须再次向应用授予权限。 我猜这对于规范中提到的在浏览器上运行的某些javascript代码是一个好方案。我正在尝试最小化用户必须授予应用程序权限以获得令牌的时间,因此授权代码流似乎是一个不错的选择,因为它支持刷新令牌。 但是,此流程似乎严重依赖于Web浏览器来执行重定向。我想知道如果使用嵌入式Web浏览器,此流程对于移动应用程序是否仍然是一个不错的选择。还是应该使用隐式流程?

5
如何验证域凭证?
我想针对域控制器验证一组凭据。例如: Username: STACKOVERFLOW\joel Password: splotchy 方法1.使用模拟查询Active Directory 很多人建议在Active Directory中查询某些内容。如果抛出异常,则说明凭据无效-如该stackoverflow问题所建议。 但是,此方法有一些严重的缺点: 您不仅在验证域帐户,而且还在进行隐式授权检查。也就是说,您正在使用模拟令牌从AD读取属性。如果原本有效的帐户无权读取广告怎么办?默认情况下,所有用户都具有读取访问权限,但是可以将域策略设置为禁用受限帐户(和/或组)的访问权限。 与AD绑定会产生很大的开销,必须在客户端上加载AD模式缓存(DirectoryServices使用的ADSI提供程序中的ADSI缓存)。这既是网络,又是AD服务器,都非常耗资源-对于简单的操作(如验证用户帐户)而言,费用太高。 对于非例外情况,您要依靠例外失败,并假设这意味着无效的用户名和密码。其他问题(例如网络故障,AD连接故障,内存分配错误等)随后会误认为身份验证失败。 方法2。LogonUser Win32 API 其他人建议使用LogonUser()API函数。这听起来不错,但不幸的是,调用用户有时有时需要通常仅授予操作系统本身的权限: 调用LogonUser的进程需要SE_TCB_NAME特权。如果调用过程没有此特权,则LogonUser失败,并且GetLastError返回ERROR_PRIVILEGE_NOT_HELD。 在某些情况下,调用LogonUser的进程还必须启用SE_CHANGE_NOTIFY_NAME特权;例如,否则,LogonUser失败,并且GetLastError返回ERROR_ACCESS_DENIED。对于本地系统帐户或属于管理员组成员的帐户,不需要此特权。默认情况下,SE_CHANGE_NOTIFY_NAME为所有用户启用,但是某些管理员可能为所有人禁用它。 发放“充当操作系统的一部分”特权不是您要轻易采取的行动-正如Microsoft在知识库文章中指出的那样: ...正在调用LogonUser的进程必须具有SE_TCB_NAME特权(在用户管理器中,这是“充当操作系统的一部分”权限)。SE_TCB_NAME特权非常强大,不应仅授予任意用户一个特权 ,以便他们可以运行需要验证凭据的应用程序。 此外,LogonUser()如果指定了空白密码,则对的调用将失败。 验证一组域凭据的正确方法是什么? 我碰巧是从托管代码调用的,但这是Windows的一个普遍问题。可以假定客户安装了.NET Framework 2.0。

13
在Chrome 48+中禁用网络安全
我有一个问题 --disable-web-security标志。Windows无法在Chrome 48和Chrome 49 beta中使用它。 我尝试杀死所有实例,重新启动并首先运行带有标志的Chrome,还尝试了其他机器。在beta版中,我可以看到警告弹出窗口(“您正在使用不受支持的标志。”),但仍在执行CORS。公共版本似乎完全忽略了该标志。 似乎没有任何新闻或人们对此进行报道,因此这可能是本地问题。将非常感谢您的帮助或任何相关信息。

11
为什么盐会使字典攻击“不可能”?
更新:请注意,我并不是在问盐是什么,彩虹表是什么,字典攻击是什么,盐的目的是什么。我正在查询:如果您知道用户盐和哈希,那么计算他们的密码不是很容易吗? 我了解该过程,并在我的一些项目中亲自实施了该过程。 s = random salt storedPassword = sha1(password + s) 在您存储的数据库中: username | hashed_password | salt 我所见过的每一种盐化实现都在密码末尾或开头添加盐分: hashed_Password = sha1(s + password ) hashed_Password = sha1(password + s) 因此,来自黑客的字典攻击值得他的盐分(哈哈),只需按上面列出的常见组合针对存储的盐分运行每个关键字。 当然,上述实现只是为黑客增加了又一步,而没有真正解决根本问题?有什么替代方案可以解决此问题,还是我误解了该问题? 我唯一想做的是拥有一个秘密混合算法,该算法以随机模式将盐和密码绑在一起,或者将其他用户字段添加到哈希过程中,这意味着黑客将不得不访问数据库并绑上代码他们通过字典攻击证明卓有成效。(更新,如评论中指出的那样,最好假设黑客可以访问您的所有信息,所以这可能不是最好的)。 让我举一个例子,说明我如何建议黑客使用一系列密码和哈希值来入侵用户数据库: 来自被黑数据库的数据: RawPassword (not stored) | Hashed | Salt -------------------------------------------------------- letmein WEFLS... WEFOJFOFO... 常用密码字典: Common Password -------------- letmein …

10
如何启用DDoS保护?
通常在服务器级别阻止DDoS(分布式拒绝服务攻击),对吗? 有没有办法在PHP级别上阻止它,或者至少减少它? 如果没有,阻止DDoS攻击的最快,最常见的方法是什么?

3
使用“ badidea”或“ thisisunsafe”绕过Chrome证书/ HSTS错误是否仅适用于当前站点?[关闭]
关闭。此问题不符合堆栈溢出准则。它当前不接受答案。 想改善这个问题吗?更新问题,使其成为Stack Overflow的主题。 2年前关闭。 改善这个问题 有时,尤其是在开发网络应用程序时,特别是在很多时候,Chrome不允许您访问某些站点并引发证书/ HSTS错误。我发现,在Chrome窗口中输入badidea(最近thisisunsafe)会告诉Chrome跳过证书验证。 此解决方案仅适用于特定网站吗?在使用此关键字后,Chrome会忽略所有网站的证书/ HSTS错误吗?


3
为什么WebSockets没有同源策略?为什么我可以连接到ws:// localhost?
我想将WebSockets用于我的应用程序的进程间通信(Daemon <-> WebGUI和Daemon <-> FatClient等)。在测试期间,我尝试通过websocket.org(http://www.websocket.org/echo.html)上的JavaScript WebSocket客户端连接到本地运行的Web套接字服务器(ws:// localhost:1234 )。 我现在的问题是: 为什么会这样?浏览器(在Linux:FF29)上没有实现跨域策略吗? 我问是因为websocket.org如果是邪恶的,它可能会尝试与我的本地WS服务器通信并将从本地主机收到的每条消息重定向到其他任何服务器: 本地WebSocket服务器浏览器Evil Web服务器 在ws:// localhost:1234在http://evil.tld | | | | | ------ [GET /] ---------> | | | <----- [HTML + EvilJS] ---- | | <------ [连接ws:// ..] ---- | | | <---- [一些通讯]-> | | | | ---- [邪恶前进] ----> …

3
转义字符串是什么意思?
我在阅读$ _SESSION ['username']进入SQL查询之前是否需要转义?它说:“无论源如何,都需要转义传递给sql查询的每个字符串”。现在我知道类似这样的事情确实很基础。Google搜索显示超过20,000个结果。仅Stackoverflow就有20页的结果,但是没有人真正说明转义字符串是什么或如何转义。只是假设。你能帮助我吗?我想学习,因为我一如既往地使用PHP制作网络应用。 我看过: 插入转义字符,Java中所有的转义字符是什么?,不能 使用addcslashes()转义字符串, 转义字符, mysql_real_escape_string()的作用是什么?, 如何在php中的字符串中转义双引号?, MySQL_real_escape_string不添加斜杠?, 我可以继续从php中的字符串中删除转义序列,但是我确定你明白了。这不是懒惰。
84 php  mysql  security  escaping 


6
面向人类的JAAS
我很难理解JAAS。一切似乎都比应有的要复杂(尤其是Sun教程)。我需要一个简单的教程或示例,说明如何在基于Struts + Spring + Hibernate的Java应用程序中使用自定义用户存储库实现安全性(身份验证+授权)。可以使用ACEGI实现。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.