teratail header banner
teratail header banner
質問するログイン新規登録

回答編集履歴

5

謝辞

2016/09/13 17:57

投稿

gaogao_9
gaogao_9

スコア103

answer CHANGED
@@ -127,5 +127,6 @@
127
127
 
128
128
  一つ注意すべきことですが、ユーザからの入力で動的生成する場合に関しては、スクリプトに直接ユーザが介入できるため、インジェクション攻撃の対象になる虞があります。
129
129
  そのため、入力に対するバリデーションは十分に行う必要があり、この辺りも、暴れ馬と言いますか、扱いの難しさではあります。
130
+ (バリデーションの扱いの難しさについては think49 さんが詳しく触れていますね。)
130
131
 
131
132
  このように非常に上級者向けで、使い方が難しいですが、使えそうな場面ではぜひ利用してみてください。

4

日本語がおかしい

2016/09/13 17:57

投稿

gaogao_9
gaogao_9

スコア103

answer CHANGED
@@ -74,7 +74,7 @@
74
74
  }
75
75
  ```
76
76
 
77
- しかし、この方法では、`"JS"`や`"JavaScript"`などのフィルタリングワードを、予めフィルタする内容をリテラルとして埋め込む必要があり、**ユーザからの入力などから、動的に受け取る事ができません。**
77
+ しかし、この方法では、`"JS"`や`"JavaScript"`などのフィルタリングワードを、予め文字リテラルとして埋め込む必要があり、**ユーザからの入力などから、動的に受け取る事ができません。**
78
78
 
79
79
  そこで`Function`の出番です。
80
80
  `wordList`を引数に受け取り、上記のようにif文と論理演算だけで構成されたフィルタの関数を動的に定義するメタプログラミングを行います。

3

セキュリティに関する旨も追記した

2016/09/13 17:35

投稿

gaogao_9
gaogao_9

スコア103

answer CHANGED
@@ -125,4 +125,7 @@
125
125
 
126
126
  グローバルオブジェクトを取ってくる、というものと比べたら、こちらのほうが本懐と言いますか、本来の使い方かと思われます。
127
127
 
128
+ 一つ注意すべきことですが、ユーザからの入力で動的生成する場合に関しては、スクリプトに直接ユーザが介入できるため、インジェクション攻撃の対象になる虞があります。
129
+ そのため、入力に対するバリデーションは十分に行う必要があり、この辺りも、暴れ馬と言いますか、扱いの難しさではあります。
130
+
128
- 非常に上級者向けで、使い方が難しいですが、使えそうな場面ではぜひ利用してみてください。
131
+ このように非常に上級者向けで、使い方が難しいですが、使えそうな場面ではぜひ利用してみてください。

2

意味が逆だった

2016/09/13 16:48

投稿

gaogao_9
gaogao_9

スコア103

answer CHANGED
@@ -13,8 +13,9 @@
13
13
 
14
14
  その中でも、一番わかり易いのは`filter`処理でしょう。
15
15
 
16
- 例えば、`複数個与えられる文章に対して、特定のワードが含まれている文章を除外する。`という処理について考えてみましょう。
16
+ 例えば、`複数個与えられる文章に対して、特定のワードが含まれている文章を抽出する。`という処理について考えてみましょう。
17
- aaaaaaaa さんがピンとくるか不安ですが、Twitterで言えば**単語ミュ機能**にあたる部分の実装です。
17
+ aaaaaaaa さんがピンとくるか不安ですが、Twitterで言えば**エゴサ機能**にあたる部分の実装です。
18
+ (因みに本来のエゴサーチの意味は、自分自身に関することの検索なので、この表現は誤用なのですが、他に適した表現方法が思いつかなかったため、ご容赦ください。)
18
19
 
19
20
  例えば、次のようなゴミみたいなつぶやきの中から、「JS」もしくは「JavaScript」という単語が含まれるつぶやきだけを抽出して、JSに関する話題だけを取ってくるとします。
20
21
 

1

日本語が分かりづらかったので直した

2016/09/13 16:33

投稿

gaogao_9
gaogao_9

スコア103

answer CHANGED
@@ -76,7 +76,7 @@
76
76
  しかし、この方法では、`"JS"`や`"JavaScript"`などのフィルタリングワードを、予めフィルタする内容をリテラルとして埋め込む必要があり、**ユーザからの入力などから、動的に受け取る事ができません。**
77
77
 
78
78
  そこで`Function`の出番です。
79
- wordListを与えたら、上記のようにif文と論理演算だけで構成されたフィルタに変換するようにメタプログラミングを行います。
79
+ `wordList`引数に受け取り、上記のようにif文と論理演算だけで構成されたフィルタの関数を動的定義するメタプログラミングを行います。
80
80
 
81
81
  ```
82
82
  function createFilter(wordList){