© 2024 GitHub, Inc.
We read every piece of feedback, and take your input very seriously.
Work fast with our official CLI. Learn more.
これまでPaintBBSは、url_exitで指定されたURLに画面を移動する事で処理を完了していました。 そのURLは
<param name="url_exit" value="./">
で指定していました。 そしてパスワードを掲示板やCMSの本体に送信するにはこの"url_exit"に、
/?password=password
のようにパスワードを記述してGETで渡すケースがほとんどでした。 これを回避するにはいろいろな方法があると思いますが、このGETの処理をPOSTに変更できれば、より安全性は高まります。 しかしながら、この処理は掲示板やCMSによって異なる場合があります。 そこで、掲示板やCMS側でそれぞれの条件にあうように自由にJavaScriptを書いてもらいます。 自由に書いてもらうといっても、例が必要なので以下に示します。
Neo.handleExit = () => { <?php if($rep): ?> const formData = new FormData(); formData.append("pwd", "パスワード"); fetch("./", { method: 'POST', mode: 'same-origin', body: formData }) .then(response => { if (response.redirected) { //レスポンスのリダイレクトを検出して移動 return window.location.href = response.url; } else { console.error('There was an error with the fetch operation:', response); throw new Error('Fetch operation failed'); } }) .catch(error => { console.error('There was a problem with the fetch operation:', error); }); <?php else: ?> return window.location.href = "./"; <?php endif; ?> }
従来の動作のままNEOを使いたい人は、この関数を単に書かなればそのまま使えます。
Neo.handleExitが関数かどうか調べて、関数が定義されている時にだけ、掲示板やCMSの開発者が定義した関数による、追加の処理と画面移動が行われます。 関数が定義されていない時は従来通り
Neo.handleExit
で設定したURLに移動します。
neo.jsそのものには、追加の処理は入らないようにしているため、neo.jsの変更箇所はごくわずかです。
neo.js
画面移動の関数が定義されている時はユーザーが定義した関数で画面移動
715961a
3458f6d
Oops, something went wrong.
Add your comment here...
We don’t support that file type.
Try again with GIF, JPEG, JPG, MOV, MP4, PNG, SVG, WEBM, CPUPROFILE, CSV, DMP, DOCX, FODG, FODP, FODS, FODT, GZ, JSON, JSONC, LOG, MD, ODF, ODG, ODP, ODS, ODT, PATCH, PDF, PPTX, TGZ, TXT, XLS, XLSX or ZIP.
Attaching documents requires write permission to this repository.
This file is empty.
Try again with a file that’s not empty.
This file is hidden.
Try again with another file.
Something went really wrong, and we can’t process that file.
Try again.
Successfully merging this pull request may close these issues.
None yet
You’re receiving notifications because you’re watching this repository.
Optionally, choose a reason for locking that others can see. Learn more about when it’s appropriate to lock conversations.
これまでPaintBBSは、url_exitで指定されたURLに画面を移動する事で処理を完了していました。
そのURLは
で指定していました。
そしてパスワードを掲示板やCMSの本体に送信するにはこの"url_exit"に、
のようにパスワードを記述してGETで渡すケースがほとんどでした。
これを回避するにはいろいろな方法があると思いますが、このGETの処理をPOSTに変更できれば、より安全性は高まります。
しかしながら、この処理は掲示板やCMSによって異なる場合があります。
そこで、掲示板やCMS側でそれぞれの条件にあうように自由にJavaScriptを書いてもらいます。
自由に書いてもらうといっても、例が必要なので以下に示します。
従来の動作のままNEOを使いたい人は、この関数を単に書かなればそのまま使えます。
Neo.handleExit
が関数かどうか調べて、関数が定義されている時にだけ、掲示板やCMSの開発者が定義した関数による、追加の処理と画面移動が行われます。関数が定義されていない時は従来通り
で設定したURLに移動します。
neo.js
そのものには、追加の処理は入らないようにしているため、neo.js
の変更箇所はごくわずかです。