问题标签 [security]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
1978 浏览

python - 来自 Python 的 PGP 签名?

从 Python 应用程序中创建和验证 PGP/GPG 签名的最简单方法是什么?

我可以使用 subprocess 调用 pgp 或 gpg 并解析输出,但我正在寻找一种不需要安装外部程序的方法(我的应用程序是跨平台的 mac/windows/unix)。

0 投票
4 回答
16702 浏览

winforms - 如何在 Winforms 应用程序中存储密码?

我在编写用于查询用户邮箱存储配额的 winforms 应用程序中有一些这样的代码。

无论我尝试了哪种方法(例如SecureString),我都可以使用 Reflector 或使用 Process Explorer 的字符串选项卡来轻松查看密码( m_pwd )作为可执行文件。

我知道我可以将此代码放在服务器上,或者使用委托等机制加强安全性,并只为服务帐户提供所需的权限。

有人可以建议一种相当安全的方法来将密码存储在本地应用程序中而不向黑客泄露密码吗?

散列是不可能的,因为我需要知道确切的密码(不仅仅是用于匹配目的的散列)。加密/解密机制不起作用,因为它们依赖于机器。

0 投票
10 回答
7668 浏览

.net - 是否有用于信用卡加密的最佳 .NET 算法?

.NETSystem.Security.Cryptography命名空间有一组相当令人困惑的算法,我可以使用这些算法来加密信用卡详细信息。哪个是最好的?

对于相对较短的字符串,它显然需要安全。

编辑:我在英国,我知道只要三位数的 CVV 号码从未被存储,我们就可以存储加密的信用卡详细信息。并感谢大家的好评。

0 投票
6 回答
6503 浏览

security - How to safely embed any flash file (swf)?

I want to allow my users to embed their own Flash animations in their posts. Usually the actual file is hosted on some free image hosting site. I wouldn't actually load the flash unless the user clicked a button to play (so that nothing auto-plays on page load). I know people can make some really annoying crap in flash, but I can't find any information about potential serious damage a flash app could cause to the viewer.

Is it unsafe to embed just any flash file from the internets? If so, how can I let users embed innocent animations but still keep out the harmful apps?

edit:

From what I can gather, the most obvious threat is for actionscript to redirect you to a malicious site.

Adobe says you can set allowScriptAccess=never and allowNetworking=none and the swf should have no access to anything outside of itself. Will this solve all my problems?

0 投票
12 回答
36461 浏览

asp.net - 如何防止重放攻击?

这与我问的另一个问题有关。总而言之,我有一个 URL 的特殊情况,当一个表单被发布到它时,我不能依赖 cookie 进行身份验证或维护用户的会话,但我需要知道他们是谁,我需要知道他们已经登录了!

我想我想出了一个解决我的问题的方法,但它需要充实。这就是我的想法。我创建了一个名为“用户名”的隐藏表单字段,并在其中放置用户的用户名,加密。然后,当表单发布时,即使我没有从浏览器收到任何 cookie,我也知道他们已经登录,因为我可以解密隐藏的表单字段并获取用户名。

我能看到的主要安全漏洞是重放攻击。如何防止某人获取该加密字符串并以该用户身份发布?我知道我可以使用 SSL 使窃取该字符串变得更加困难,也许我可以定期轮换加密密钥以限制该字符串适用的时间量,但我真的很想找到一个防弹的解决方案。有人有什么想法吗?ASP.Net ViewState 是否阻止重播?如果是这样,他们是如何做到的?

编辑:我希望有一个不需要任何存储在数据库中的解决方案。应用程序状态是可以的,只是它无法在 IIS 重新启动或在网络场或花园场景中完全工作。我现在接受克里斯的回答,因为我不相信在没有数据库的情况下甚至可以保护它。但是如果有人提出不涉及数据库的答案,我会接受!

0 投票
7 回答
9119 浏览

security - 防止命令行注入攻击

我们目前正在构建一个执行许多外部工具的应用程序。我们经常不得不将用户输入我们系统的信息传递给这些工具。

显然,这是一场等待发生的重大安全噩梦。

不幸的是,我们还没有在 .NET Framework 中找到任何执行命令行程序的类,同时提供与 IDbCommand 对象对数据库所做的相同类型的防范注入攻击。

现在,我们正在使用一个非常原始的字符串替换,我怀疑这还不够:

你们如何防止命令行注入攻击?我们计划实现一个非常严格的正则表达式,只允许一小部分字符通过,但我想知道是否有更好的方法。

一些澄清:

  • 其中一些工具没有我们可以编程的 API。如果他们这样做了,我们就不会遇到这个问题。
  • 用户不会选择要执行的工具,他们会输入我们选择的工具使用的元数据(例如,将版权声明等元数据注入目标文件)。
0 投票
5 回答
3352 浏览

flash - 将未经篡改的数据从 Flash 应用程序传递到服务器?

我正在寻找在运行 Flash 的客户端和服务器之间传递数据的安全方法。有问题的数据将由 Flash 应用程序生成,在这种情况下是您完成游戏后的分数。我想验证服务器上的数据是否未被篡改。有什么好的方法可以完成这项工作?

一种简单的方法是对数据执行一些操作,例如散列,然后将散列与数据一起传回服务器。但是,可以访问客户端源代码的人很容易打破这一点。

编辑:我意识到没有什么是不可破解的,但我想让它尽可能地困难。@jcnnghm 使用公钥加密数据并可选择使用游戏日志进行完整性检查和/或重新计算的解决方案是我认为的最佳选择。SSL 加密也是一个好主意,因为这使得破译实际发送回服务器的内容变得更加困难。

0 投票
2 回答
1549 浏览

.net - .Net 3.5,在进程之间传递字符串的最安全方式

我希望能够将 SecureString(缓存的密码)传递给 C#(.Net 3.5)中的子进程,但我不知道最安全的方法是什么。例如,如果我将 SecureString 转换回常规字符串并将其作为命令行参数传递,那么我认为该值可能容易出现磁盘分页——这会使明文接触文件系统并破坏要点使用 SecureString。

可以改为传递 SecureString 的 IntPtr 吗?我可以在不增加风险的情况下使用命名管道吗?

0 投票
2 回答
1459 浏览

c# - 存储 Windows 密码

我正在编写(在 C# 中使用 .NET 3.5)一个管理应用程序,它将轮询多个 Windows 系统以获取各种数据。在许多情况下,它会使用 WMI,但在某些情况下,它可能需要读取远程注册表或在轮询系统上远程执行某些命令或脚本。此轮询将以重复的时间间隔发生 - 通常是每晚,但可以配置为更多(或更少)频繁发生。因此,民意调查可以每 10 分钟一次,也可以每月一次。它需要以自动化的方式发生,无需任何人工干预。

这些功能将需要对轮询系统的管理员级别访问权限。现在,我希望在大多数用例中,会有一个域,并且轮询应用程序可以作为具有域管理员(或同等)权限的服务运行,这意味着我不必担心存储密码 - 管理员设置该应用程序将通过标准 Windows 机制定义服务的用户名/密码。

但是外面总是有一些害群之马。该程序可以在非域环境中运行,或者在某些轮询系统不是域成员的情况下运行。在这些情况下,我们必须定义用户名和密码,安全地存储它们,然后在我们轮询该系统时调用这个用户/通行证对。所以请记住——在这种情况下,正在编写的程序是向身份验证系统发送密码的用户。

我不确定是否需要使用可逆哈希,然后在使用时将其解密为纯文本,或者是否有一些 Windows 机制允许我存储然后仅重用哈希。显然第二种机制更可取;我希望我的程序要么永远不知道密码的明文值,要么在尽可能短的时间内知道它。

我需要有关实现此目的的智能和安全方法的建议。

感谢您的关注!

0 投票
6 回答
1986 浏览

security - 安全 Web 应用程序的重要提示

我正在寻找简单而有效的简单步骤,以使 Web 应用程序更安全。

您对安全 Web 应用程序有哪些重要提示,它们将阻止什么样的攻击?