防止恶意用户执行JavaScript

时间:2011-09-15 07:37:36

标签: javascript

在我的JSP中,我有一个像fnGetTicketDetails

这样的函数
function fnGetTicketDetails(record){
    $("#TicketNumber").val(record);
    $("#TicketDetailsForm").submit();
    return false;
}

我有这样的形式:

<form name="TicketDetailsForm" id="TicketDetailsForm" method="post" action='${properties["SUBMIT_TICKET_DETAIL"]}'
    target="_blank" style="display: none;">

我有输入隐藏参数

<input type="hidden" name="record" id="TicketNumber" /> 

它在服务器上工作正常。问题是:如果我使用

javascript:eval("fnGetTicketDetails(83769551); eval();");
在浏览器中

然后我也得到了细节,这是无效的。如何从浏览器中阻止这些类型的请求。因为黑客可以轻松获取详细信息,如果他知道票号。

2 个答案:

答案 0 :(得分:7)

您无法阻止用户执行此操作。

必须将来自用户的所有输入视为 您的JavaScript 发送的所有请求为不受信任。

这意味着服务器 必须验证来自用户的请求是否合法(即必须检查当前用户是否有权读取指定的详细信息)。

依靠隐藏字段和JavaScript来保护您的数据安全是一种非常简单的方法来获取数据。

答案 1 :(得分:3)

你做不到。存储在客户端上的任何数据都将对最终用户可见。

这里的问题是您的服务器愿意向要求他们的任何人显示详细信息。甚至不要试图阻止用户询问。只需检查服务器端,确保允许该用户查看这些故障单详细信息。如果他们不是,请不要交付他们!