Как использовать Csurf Express JS 4.0?
Я проверял csurfВики, но он пуст. Этот модуль добавляет csrfToken()
функция для запросов пользователей, но тогда, как я должен ее использовать?
может кто-нибудь дать пример кода с пояснениями? Что делать на стороне пользователя? Что мне делать на сервере?
1 ответов
на csurf
промежуточное ПО предназначено для отклонения запросов, содержащих полезную нагрузку (например, параметры тела), если у него нет допустимого маркера. Вот как вы его используете:
app.use(require('body-parser')());
app.use(require('cookie-parser')('YOUR SECRET GOES HERE'));
app.use(require('express-session')());
app.use(require('csurf')());
app.get('/some-form', function(req, res){
res.send('<form action="/process" method="POST">' +
'<input type="hidden" name="_csrf" value="' + req.csrfToken() + '">' +
'Favorite color: <input type="text" name="favoriteColor">' +
'<button type="submit">Submit</button>' +
'</form>');
});
app.post('/process', function(req, res){
res.send('<p>Your favorite color is "' + req.body.favoriteColor + '".');
});
попробуйте вынуть req.csrfToken()
(или заменяя его чем-то другим); вы обнаружите, что форма больше не работает.
обратите внимание, что вам нужны сеансы для csurf
на работу. Если вы хотите понять причины, по которым вы бы использовали csurf
, см. статью Википедии о кросс-сайте подделка запросов (CSRF).