【发布时间】:2014-02-07 00:17:50
【问题描述】:
不久前,我遇到了一个关于 AngularJS 中的身份验证的教程。他们创建了一个看起来像这样的AuthenticationService:
angular.module("auth").factory("AuthenticationService", function ($http, $sanitize) {
function sanitizeCredentials(credentials) {
return {
username: $sanitize(credentials.username),
password: $sanitize(credentials.password)
};
}
return {
login: function (credentials) {
return $http.post("auth/login", sanitizeCredentials(credentials));
}
};
});
如您所见,$sanitize 服务用于清理用户名和密码。到目前为止一切都很好,但是在这里使用它真的有意义吗?据我所知,当用户输入立即显示在 html 中时,使用$sanitize。但是当我向服务器发送一些东西时,在前端对其进行清理真的有用吗?由于任何人都可以覆盖这部分,因此无论如何我都需要在服务器上再次执行此操作。那么,为什么不直接发送它而不进行清理,然后在后端做重要的事情呢?
【问题讨论】:
标签: javascript security angularjs sanitization