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

回答編集履歴

2

<input type="checkbox" style="display: none;">` となっているコントロールをユーザが checked 状態にする事は可能か

2015/09/16 04:00

投稿

think49
think49

スコア18194

answer CHANGED
@@ -16,4 +16,22 @@
16
16
  > 簡易的に、データ入力制限をするための策なので、究極的には、データのバリデーションを行えばよいとは思っています。
17
17
 
18
18
  フォーム送信制限をかけたとしてもフォーム送信することは可能なのでサーバ側でのバリデーションは必須だと思って下さい。
19
- CSS や JavaScript で制限をかけたとしても突破する方法はいくらでもあります。
19
+ CSS や JavaScript で制限をかけたとしても突破する方法はいくらでもあります。
20
+
21
+ ---
22
+
23
+ **(9/16 12:58追記)**
24
+ ひょっとして、こういう事なんでしょうか。
25
+
26
+ × Q. `<input type="checkbox" style="display: none;" checked>` でフォーム送信される事が偶発的にありえますか?
27
+  ↓
28
+ ○ Q. `<input type="checkbox" style="display: none;">` となっているコントロールをユーザが `checked` 状態にする事は可能ですか?
29
+
30
+ 私は前者だと思っていましたが、後者の場合はいくつか方法があります。
31
+
32
+ 1. ブラウザの CSS を Off にしている
33
+ 2. CSSを使わないテキストブラウザを使用している
34
+ 3. 外部CSSの読み込みに失敗した
35
+ 4. JavaScript で `input.cheked = true;` を実行する(bookmarkletやコンソール等)
36
+
37
+ 基本的に CSS に依存する UI は好ましくないと思います。

1

バリデーション

2015/09/16 04:00

投稿

think49
think49

スコア18194

answer CHANGED
@@ -9,4 +9,11 @@
9
9
  <script>
10
10
  document.querySelector('form').elements['hoge'].disabled = true; // input[name=hoge] を disabled にする
11
11
  </script>
12
- ```
12
+ ```
13
+
14
+ ---
15
+
16
+ > 簡易的に、データ入力制限をするための策なので、究極的には、データのバリデーションを行えばよいとは思っています。
17
+
18
+ フォーム送信制限をかけたとしてもフォーム送信することは可能なのでサーバ側でのバリデーションは必須だと思って下さい。
19
+ CSS や JavaScript で制限をかけたとしても突破する方法はいくらでもあります。