<div class="chatlog__message-group"> <div id="chatlog__message-container-762946701585023006" class="chatlog__message-container" data-message-id="762946701585023006"> <div class="chatlog__message"> <div class="chatlog__message-aside"><img class="chatlog__avatar" src="https://cdn.discordapp.com/avatars/189711109966659584/95280765d1be73ce985dce15ea3585f6.png?size=512" alt="Avatar" loading="lazy"></div> <div class="chatlog__message-primary"> <div class="chatlog__header"><span class="chatlog__author" style="color:rgb(237,171,161)" title="omochimetaru" data-user-id="189711109966659584">omochimetaru</span> <a href="/channels/291397416043675649?category=開発環境, ライブラリ&channel=server-side&message_id=762946840692785152"><span class="chatlog__timestamp" title="Tuesday, October 6, 2020 7:57 AM"></span></a><a href="#chatlog__message-container-762946701585023006">10/6/2020 7:57 AM</a></div> <div class="chatlog__content chatlog__markdown"><span class="chatlog__markdown-preserve"><code class="chatlog__markdown-pre chatlog__markdown-pre--multiline language-swift">struct CSRFProtection { struct Key: StorageKey { typealias Value = CSRFProtection } struct Post: Decodable { var csrfToken: UUID? } let sessionKey = "csrfToken" struct Middleware: Vapor.Middleware { func respond(to request: Request, chainingTo next: Responder) -> EventLoopFuture<Response> { let eventLoop = request.eventLoop guard request.method == .POST else { return next.respond(to: request) } let verify = eventLoop.future { try request.verifyCSRFToken() } return verify.flatMap { () in next.respond(to: request) } } } var middleware: Middleware { Middleware() } }</code></span></div> </div> </div> </div> <div id="chatlog__message-container-762946783960891402" class="chatlog__message-container" data-message-id="762946783960891402"> <div class="chatlog__message"> <div class="chatlog__message-aside"> <div class="chatlog__short-timestamp" title="Tuesday, October 6, 2020 7:58 AM">7:58 AM</div> </div> <div class="chatlog__message-primary"> <div class="chatlog__content chatlog__markdown"><span class="chatlog__markdown-preserve">結構簡単ですよ。 <code class="chatlog__markdown-pre chatlog__markdown-pre--inline">respond (to:, chainingTo)</code> メソッドを実装するだけなので。</span></div> </div> </div> </div> <div id="chatlog__message-container-762946840692785152" class="chatlog__message-container" data-message-id="762946840692785152"> <div class="chatlog__message"> <div class="chatlog__message-aside"> <div class="chatlog__short-timestamp" title="Tuesday, October 6, 2020 7:58 AM">7:58 AM</div> </div> <div class="chatlog__message-primary"> <div class="chatlog__content chatlog__markdown"><span class="chatlog__markdown-preserve">↑は自作のCSRF脆弱性対策くん</span></div> </div> </div> </div> </div>