写入列表时,使用javascript屏蔽前6位数字

时间:2015-05-01 12:39:22

标签: javascript c# jquery ajax

我有一个搜索表单,当用户按名称搜索时,它会返回帐号,全名和SSN。我正在使用Ajax POST表单并处理数据返回。在Ajax帖子中,它构建了一个列表,列表以div的形式写入屏幕。有没有办法在写入列表时屏蔽SSN的前6位数?

这是POST:

//Submit form
$(function submit() {
    $('form').submit(function (e) {
        e.preventDefault();
        $.ajax({
            url: 'Home/TAPost',
            data: $('form').serialize(),
            dataType: "json",
            type: 'POST',
            success: function (data) {
                var options = data;
                $each(options, function (index, option) {
                    $("#resultsList").append('<li>' + response[option] + '</li>');
                });
               }
        });
        return false;
    });
});

DIV被写入:

<section id="searchResults">
    <h2>Search Results</h2>
    <ul id="resultsList"></ul>
</section>

1 个答案:

答案 0 :(得分:2)

在处理社会安全号码时,您需要小心。将此数据发送到浏览器会使其容易受到攻击。即使我们使用HTTPS并禁用了浏览器缓存,大多数浏览器都会包含一个网络窗口,让我可以看到进入浏览器的流量。结果,我可以看到你的AJAX调用的结果和所有未屏蔽的SSN。例如,在IE浏览器中,我按下F12,然后进入网络选项卡并繁荣,这是一个身份盗贼的梦想!

您应该尽可能将数据屏蔽到原点附近。意思是,如果我需要的只是最后4个,为什么甚至将完整的SSN从数据库发送到我的网络服务器?这意味着它存储在我的网络服务器中未被屏蔽。检查Web服务器内存的人可以看到它。你应该做的只是发送数据库中的最后4个或原点。这样,您可以将数据暴露在尽可能少的曝光量下。

过去,我已将SSN和Masked SSN存储在不同的字段中。这样,它不能由编写存储过程的人来掩盖它。他们应该只选择蒙版字段。您甚至可以创建一个名为&#34; view_UserDataMasked&#34;并授予您的IIS / Web服务器用户名访问此视图的权限,但不能访问&#34; table_UserData&#34;哪个会有完整的SSN。这有助于防止SQL注入的可能性从而暴露出SSN。

另外,我希望不用说,SSN应该存储在加密的数据库中,加密数据库备份加密。当您处理受保护的个人信息时,您需要小心。黑客可能会给你/你的公司造成数百万美元的损失。