ruby<%= form_tag(:action => '/submit') do %> ... <% end %>
では、CSRF トークンを含むフォームを取得するようなことができます。
ノードに既存の関数があり、どのように実装されていますか?
ruby<%= form_tag(:action => '/submit') do %> ... <% end %>
では、CSRF トークンを含むフォームを取得するようなことができます。
ノードに既存の関数があり、どのように実装されていますか?
node.jsにはcaolan-formsプラグインを使用できます。その後、express-csrfプラグインをインストールします。
次に、次のように、これら2つをマージできます。
// initializing express
var express = require('express'),
// initializing express-csrf
csrf = require('express-csrf');
app = express.createServer();
app.dynamicHelpers({
csrf: csrf.token
});
var forms = require('forms'),
fields = forms.fields,
validators = forms.validators;
var reg_form = forms.create({
username: fields.string({required: true, id: csrf, name: csrf}),
});
// finally render the form
reg_form.toHTML();
それは生成します:
<div class="field required">
<label for="id_username">Username</label>
<input type="text" name="[csrf-value]" id="[csrf-value]" value="test" />
</div>
注: caolan-formsの作者は次のように書いています。
独自のフォームタグと送信ボタンを提供する必要があることに気付くでしょう。この方法の方が柔軟性があります;)
express-csrfは非公開になっているため、代わりにconnect bundleを使用して、この簡単な例に従ってください。最終的には、次のようなcaolan-formsと統合できるようになります。
var reg_form = forms.create({
'_csrf':fields.hidden({value: 'req.session._csrf'}),
...
})