外部入力対策
をテンプレートにして作成
[
トップ
] [
新規
|
一覧
|
検索
|
最終更新
|
ヘルプ
|
ログイン
]
開始行:
外部からの入力に関するTIPS。
ユーザ名の入力、他ゴーストへ切り替えを行う時に相手の名前...
どんな文字が来るか分からない場合、対策しておかないと危険...
----
#contents
----
~
*何がおこるのか [#i881d68d]
ユーザ名を入力してもらって、以降その名前で呼ぶとします。~
このときユーザ名に「[[\![vanishbymyself]:http://ssp.shill...
\![vanishbymyself]は、その場で自分自身をアンインストール...
もしこの入力をそのままユーザ名に設定してしまうと、~
今後ゴーストがユーザ名を呼ぶたびに自分自身をアンインスト...
他にも、外部サイトから情報を取得する「[[\![execute,http-g...
外部入力による予期せぬ動作を防ぐ必要があります。~
*対策 [#q5928c07]
外部入力からのさくらスクリプトを無効化する必要があります。~
**KillDangerousTag関数 [#d694c7c7]
里々のサンプルゴーストである「[[Rポストと狛犬:http://emi...
基本的に自分の辞書からでない文字列は、これを使えば安全で...
dic00_system.txtに記述されているので、活用しましょう。~
*
:(call(バイト値、1)KillDangerousTag(バイト値、1)...
このように記述すると、\![vanishbymyself]は実行されず、バ...
\![vanishbymyself]を実行するぞ!
**\_?を使う(SSP専用) [#xb586e04]
[[\_?:http://ssp.shillest.net/ukadoc/manual/list_sakura_s...
*
:もうゴーストやめてやるー! \_?\![vanishbymyself]\_?
出力結果は以下となります。
もうゴーストやめてやるー! \![vanishbymyself]
注意点として、\_?はSSPにしか実装されていません。~
この方法を使う場合、配布ページやreadmeに、SSPでしか動作し...
**自分で置き換え処理を作る [#c5ea7412]
上記のKillDangerousTag関数を使うのが一番簡単ですが、自分...
半角\記号はさくらスクリプトで使われるため、ただ「\」と書...
半角\記号をバルーンに表示するには、「\\」と表示します。~
また、\\と書いた場合にはさくらスクリプトとして解釈されま...
*
:メガンテ! \\![vanishbymyself]!
このように書いた場合、バルーンには以下のように表示され、\...
メガンテ! \![vanishbymyself]!
全ての半角\記号を「\\」と置き換えてしまう処理を作ります。~
@さくらスクリプト無効化
(replace(バイト値、1)(A0)(バイト値、1)\(バイト...
使い方は以下です。~
*
:(call、さくらスクリプト無効化、\![vanishbymyself]も\!...
出力結果は以下となります。~
\![vanishbymyself]も\![execute,http-get,URL]もぜんぶ無効...
*使うべき場所 [#j43cdb2c]
基本的に、辞書に書いている部分には使用する必要はありませ...
外部から入力された文字列など、何が入っているか分からない...
以下に例を挙げます。~
-ユーザ入力
-他ゴースト名
-他ゴースト\0名
ユーザ入力は「Rポストと狛犬」で対策済みなので、ここでは...
**ゴースト切り替え反応 [#v9ee80f0]
普通は以下のように記述しますが、もし\![vanishbymyself]な...
*他のゴーストへ変更
>(R0)へ変更
:(R0)さんに交代します。
そこで、先ほどのKillDangerousTag関数を使用して書き換えま...
*他のゴーストへ変更
>(R0)へ変更
:(call(バイト値、1)KillDangerousTag(バイト値、1)...
または、\_?でさくらスクリプトを無効化しておきます。~
前述のとおり、この記述はSSP専用です。
*他のゴーストへ変更
>(R0)へ変更
:\_?(R0)\_?さんに交代します。
**補足 [#f9384eb2]
なお、以下はきちんと動作し、さくらスクリプトは実行されま...
*
>\![vanishbymyself]
*\![vanishbymyself]
消えないでトークをするよ!
終了行:
外部からの入力に関するTIPS。
ユーザ名の入力、他ゴーストへ切り替えを行う時に相手の名前...
どんな文字が来るか分からない場合、対策しておかないと危険...
----
#contents
----
~
*何がおこるのか [#i881d68d]
ユーザ名を入力してもらって、以降その名前で呼ぶとします。~
このときユーザ名に「[[\![vanishbymyself]:http://ssp.shill...
\![vanishbymyself]は、その場で自分自身をアンインストール...
もしこの入力をそのままユーザ名に設定してしまうと、~
今後ゴーストがユーザ名を呼ぶたびに自分自身をアンインスト...
他にも、外部サイトから情報を取得する「[[\![execute,http-g...
外部入力による予期せぬ動作を防ぐ必要があります。~
*対策 [#q5928c07]
外部入力からのさくらスクリプトを無効化する必要があります。~
**KillDangerousTag関数 [#d694c7c7]
里々のサンプルゴーストである「[[Rポストと狛犬:http://emi...
基本的に自分の辞書からでない文字列は、これを使えば安全で...
dic00_system.txtに記述されているので、活用しましょう。~
*
:(call(バイト値、1)KillDangerousTag(バイト値、1)...
このように記述すると、\![vanishbymyself]は実行されず、バ...
\![vanishbymyself]を実行するぞ!
**\_?を使う(SSP専用) [#xb586e04]
[[\_?:http://ssp.shillest.net/ukadoc/manual/list_sakura_s...
*
:もうゴーストやめてやるー! \_?\![vanishbymyself]\_?
出力結果は以下となります。
もうゴーストやめてやるー! \![vanishbymyself]
注意点として、\_?はSSPにしか実装されていません。~
この方法を使う場合、配布ページやreadmeに、SSPでしか動作し...
**自分で置き換え処理を作る [#c5ea7412]
上記のKillDangerousTag関数を使うのが一番簡単ですが、自分...
半角\記号はさくらスクリプトで使われるため、ただ「\」と書...
半角\記号をバルーンに表示するには、「\\」と表示します。~
また、\\と書いた場合にはさくらスクリプトとして解釈されま...
*
:メガンテ! \\![vanishbymyself]!
このように書いた場合、バルーンには以下のように表示され、\...
メガンテ! \![vanishbymyself]!
全ての半角\記号を「\\」と置き換えてしまう処理を作ります。~
@さくらスクリプト無効化
(replace(バイト値、1)(A0)(バイト値、1)\(バイト...
使い方は以下です。~
*
:(call、さくらスクリプト無効化、\![vanishbymyself]も\!...
出力結果は以下となります。~
\![vanishbymyself]も\![execute,http-get,URL]もぜんぶ無効...
*使うべき場所 [#j43cdb2c]
基本的に、辞書に書いている部分には使用する必要はありませ...
外部から入力された文字列など、何が入っているか分からない...
以下に例を挙げます。~
-ユーザ入力
-他ゴースト名
-他ゴースト\0名
ユーザ入力は「Rポストと狛犬」で対策済みなので、ここでは...
**ゴースト切り替え反応 [#v9ee80f0]
普通は以下のように記述しますが、もし\![vanishbymyself]な...
*他のゴーストへ変更
>(R0)へ変更
:(R0)さんに交代します。
そこで、先ほどのKillDangerousTag関数を使用して書き換えま...
*他のゴーストへ変更
>(R0)へ変更
:(call(バイト値、1)KillDangerousTag(バイト値、1)...
または、\_?でさくらスクリプトを無効化しておきます。~
前述のとおり、この記述はSSP専用です。
*他のゴーストへ変更
>(R0)へ変更
:\_?(R0)\_?さんに交代します。
**補足 [#f9384eb2]
なお、以下はきちんと動作し、さくらスクリプトは実行されま...
*
>\![vanishbymyself]
*\![vanishbymyself]
消えないでトークをするよ!
ページ名: