色々
思いついたことを色々やっていく。
Helmetを使う
実稼働環境における Express のセキュリティーに関するベスト・プラクティス
expressで推奨されてた。
$ npm install --save helmet
インストールして追記
var helmet = require('helmet')
app.use(helmet())
効果はよく分からない。
Express×Helmetでウェブセキュリティを学ぶ - Qiita
この記事は エニプラ Advent Calendar 2020 の 11 日目の記事です。はじめにExpress 公式の『実稼働環境における Express のセキュリティーに関するベスト・プラ…
とか参照。
Javascriptでhtmlspecialchars
PHP使ったときなんかこんなのあったよなーと思って探してみたら、javascriptではないらしい。なので自分で関数作って対応するそうな。ちょうどStackoverflowに同様の質問があった。
What is the HtmlSpecialChars equivalent in JavaScript?
Apparently, this is harder to find than I thought it would be. And it even is so simple... Is there a function equivalen...
function escapeHtml(text) {
return text
.replace(/&/g, "&")
.replace(/</g, "<")
.replace(/>/g, ">")
.replace(/"/g, """)
.replace(/'/g, "'");
}
replaceで一個ずつ置き換えてく。
入力文字数チェック
未入力だの、長いやつを弾く。
if (req.body['user_message'] === '') {
res.status(400).send('ないようがないよう')
return;
}
if (req.body['user_message'].length > 400) {
res.status(400).send('ないようがながいよう')
return;
}
if (req.body['user_name'].length > 20) {
res.status(400).send('なまえがながいよう')
return;
}
長さ見てるだけだね。
新しい投稿が上に来るようにする
data.reverse();
こんな簡単なのだな。ただ編集→更新したやつは上に来ない。
日時をGMTにする、形式を変える
Intl.DateTimeFormat() コンストラクター - JavaScript | MDN
Intl.DateTimeFormat() コンストラクターは、言語に応じた日付と時刻の書式化を可能にする Intl.DateTimeFormat オブジェクトを生成します。
こちらに書いてあることを読み解きつつ
function fmtdate(){
let o = new Intl.DateTimeFormat('jp-JP', {
weekday: 'narrow',
year: 'numeric',
month: '2-digit',
day: '2-digit',
hour: '2-digit',
minute: '2-digit',
second: '2-digit',
fractionalSecondDigits: 3
})
return o.format(new Date())
}
こんな関数を作った。今まで
2022-01-02T11:50:36.446Z
こんな表示でUTCだったのが
2022/01/02(日) 20:51:07.812
こんな表示でGMTになった。
とりあえず終わり
こんなところかなぁ。あと最終のソース。
コメント