使用jquery为jsp编写安全的ajax代码时应该记住什么

时间:2009-10-10 11:13:47

标签: jquery ajax jsp

我目前正在开发工资单的Web应用程序项目。这个网站是公开的。我想使用jquery + ajax将服务器端lang的某些功能实现为jsp。有哪些指南有助于编写成熟,安全的代码。

2 个答案:

答案 0 :(得分:1)

第1课

清理您的输入

您可以通过在表单等上引入客户端验证来实现这一点,但绝不依赖于此来为您的JSP提供干净的数据。您的JSP需要匹配已知良好输入的所有数据。如果任何输入与预期输入匹配,则应抛出一般错误。

我不能强调这一点,特别是对于薪资软件。

答案 1 :(得分:0)

登上白板并写下来。

I promise to sanitize,filter and validate my data before any changes are made.
I promise to sanitize,filter and validate my data before any changes are made.
I promise to sanitize,filter and validate my data before any changes are made.
I promise to sanitize,filter and validate my data before any changes are made.
I promise to sanitize,filter and validate my data before any changes are made.
I promise to sanitize,filter and validate my data before any changes are made.

现在。

在编写这样的系统时,你需要保持代码抽象,不要只为每个动作编写一个函数,例如

不要这样做。

function updateEmailAddress(id,email)
{
   $.post("ajax/updateEmail.php",{id:id,email:email});
}

updateEmailAddress(22,'some_new_email@mydomain.tld');

这样做,构建一个可重用代码系统。

System = {
   Send : function(location,method,data,callback)
   {
       //Send here to location via method with data and then invoke the callback
   }
}
Actions = {
    UpdateMail(id,mail)
    {
        System.Send('ajax/mailupdate.php','post',{id:id,email:mail},function(data){
           //Validate Server Responce
        });
    }
    CheckLoginState(callback)
    {
        System.Send('ajax/loginState.php','post',{},function(data){
           callback(data ? true : false);
        });
    }
    //ETC
    //ETC
}


Action.CheckLoginState(function(loggedin){
   if(loggedin){
      Action.UpdateMail(someId,SomeEmail);
   }
});