19/05/19(日)14:21:01 ログイ... のスレッド詳細
削除依頼やバグ報告は メールフォーム にお願いします。個人情報、名誉毀損、侵害等については積極的に削除しますので、 メールフォーム より該当URLをご連絡いただけると助かります。
画像ファイル名:1558243261117.png 19/05/19(日)14:21:01 No.592427794
ログイン処理貼る
1 19/05/19(日)14:25:25 No.592428818
日本語で頼む
2 19/05/19(日)14:27:49 No.592429392
>日本語で頼む なでしこでもやってろ
3 19/05/19(日)14:31:16 No.592430177
===使ってるあたりにまだ良心を感じる プロのプロじゃないプログラマーはこんな演算子使わない
4 19/05/19(日)14:33:15 No.592430576
真のプロじゃないプログラマーなら受け取ったユーザ名とパスワードをそのままクエリにぶちこむ
5 19/05/19(日)14:33:24 No.592430611
どういう処理してるかわかり易く説明して
6 19/05/19(日)14:34:28 No.592430833
if文の評価の中で変数に代入しないからダメ
7 19/05/19(日)14:34:56 No.592430936
メソッドに副作用がないから綺麗なコード
8 19/05/19(日)14:35:14 No.592430992
まず関係ないユーザ全部取得してる時点でふくんだが
9 19/05/19(日)14:35:38 No.592431070
if("true" === "true")てなんです
10 19/05/19(日)14:35:57 No.592431139
まずログイン処理で複数レコード取ることある?と思ったけど これテーブルから全件selectしてきて全レコード舐めて一致するか見てるのな
11 19/05/19(日)14:36:09 No.592431187
56-58にわざとらしさがある
12 19/05/19(日)14:36:41 No.592431305
フロントサイド側のプログラムらしいな
13 19/05/19(日)14:38:03 No.592431605
>フロントサイド側のプログラムらしいな オオオ イイイ
14 19/05/19(日)14:38:32 No.592431702
パスワード平文保存なんですけお…
15 19/05/19(日)14:38:34 No.592431711
>フロントサイド側のプログラムらしいな scriptタグ見れば一発でわかる話だろ
16 19/05/19(日)14:38:44 No.592431749
これをやるとSQLの中身まっさらにされるよ
17 19/05/19(日)14:38:49 No.592431770
>>フロントサイド側のプログラムらしいな >scriptタグ見れば一発でわかる話だろ node.js…
18 19/05/19(日)14:39:30 No.592431928
>真のプロじゃないプログラマーなら受け取ったユーザ名とパスワードをそのままクエリにぶちこむ これそれより酷いことしてない…?
19 19/05/19(日)14:40:07 No.592432060
これなんなの怖い
20 19/05/19(日)14:40:16 No.592432103
>if("true" === "true")てなんです デバッグ用の分岐が残ったんだと思う
21 19/05/19(日)14:40:33 No.592432155
>これそれより酷いことしてない…? この文脈だと文字列結合でやるに違いないから非効率でもこっちの方がまだ邪悪度は低いと思う
22 19/05/19(日)14:40:45 No.592432192
>node.js… サーバーサイドでなんでscriptタグ使うんだよ
23 19/05/19(日)14:41:31 No.592432359
>>if("true" === "true")てなんです >デバッグ用の分岐が残ったんだと思う あーそんな気もするね
24 19/05/19(日)14:41:54 No.592432437
javascriptはもうjQueryを標準で組み込んでいいんじゃねぇかな
25 19/05/19(日)14:42:15 No.592432516
passwordが平文で保存されているであろうこともポイント高い
26 19/05/19(日)14:42:24 No.592432544
>C言語で頼む
27 19/05/19(日)14:42:28 No.592432559
>javascriptはもうjQueryを標準で組み込んでいいんじゃねぇかな やめてくだち!
28 19/05/19(日)14:42:49 No.592432627
Rubyで頼む
29 19/05/19(日)14:43:37 No.592432801
jQueryとかゴミすぎるだろう… せめて双方向バインディング標準装備なやつくれ
30 19/05/19(日)14:43:38 No.592432807
どうしてwhere句で使えるユーザ名があるのに全件クエリ流すんですか? どうして…
31 19/05/19(日)14:43:51 No.592432860
ログインボタン押されるたびに select * from userなんてやってもいいの? 少なければいいのか
32 19/05/19(日)14:43:54 No.592432871
APIコールでSQL文ぶち込める時点で怖すぎる…
33 19/05/19(日)14:44:12 No.592432932
todoしてもダメじゃねぇかな……
34 19/05/19(日)14:44:28 No.592432998
>これそれより酷いことしてない…? 好きなようにログインできるのと好きなようにDB操作できるのどっちがマシなんだろうか
35 19/05/19(日)14:45:01 No.592433140
せめてパスワードをハッシュ化するとか…あるだろ!
36 19/05/19(日)14:45:04 No.592433160
>>これそれより酷いことしてない…? >好きなようにログインできるのと好きなようにDB操作できるのどっちがマシなんだろうか 好きなようにDB操作もできそうに見えるんですけお
37 19/05/19(日)14:45:11 No.592433186
よくわからんがまあ動いてるからヨシ!
38 19/05/19(日)14:45:19 No.592433213
apiServiceとかいうフロントエンドにsql直発行させられるI/F用意したやつが一番邪悪だと思う
39 19/05/19(日)14:45:27 No.592433250
ご安全に!
40 19/05/19(日)14:45:27 No.592433254
>select * from userなんてやってもいいの? そうだね >少なければいいのか ちょっとまてや
41 19/05/19(日)14:46:01 No.592433366
ほら最近グラフキューエルってやつが流行ってるから似てるしいいかなって
42 19/05/19(日)14:46:02 No.592433369
>この文脈だと文字列結合でやるに違いないから非効率でもこっちの方がまだ邪悪度は低いと思う フロントエンドからsql投げられる時点でもはやどうでも良い感はあるけど 全ユーザデータをフロントエンドに持ってくるよりはインジェクションされようが絞ろうとしてるだけなんぼかマシだと思う…
43 19/05/19(日)14:46:10 No.592433401
delete from *;
44 19/05/19(日)14:46:13 No.592433412
user以外のテーブルも覗けるのでは?
45 19/05/19(日)14:46:35 No.592433508
>少なければいいのか テストのときは少ないからな…
46 19/05/19(日)14:47:05 No.592433617
仕様書にはそこまで書いてなかったしヨシ!
47 19/05/19(日)14:47:22 No.592433682
脆弱性作り込むくらいならクソコードのままでいて
48 19/05/19(日)14:47:29 No.592433704
>ちょっとまてや もしかしてこれやると相手のパソコンに全ユーザーデータいっちゃうの?
49 19/05/19(日)14:47:41 No.592433739
やらかしに反して命名やモジュールは綺麗だしあれかな 問題集のひとつかな?
50 19/05/19(日)14:48:30 No.592433900
>もしかしてこれやると相手のパソコンに全ユーザーデータいっちゃうの? そりゃあもうばっちり
51 19/05/19(日)14:48:41 No.592433947
>やらかしに反して命名やモジュールは綺麗だしあれかな >問題集のひとつかな? 実際に動いていたサービスのコード
52 19/05/19(日)14:48:49 No.592433973
スレ画はイントラネットで稼働していたのが不幸中の幸い 幸いでも無いけど
53 19/05/19(日)14:49:21 No.592434104
あんまJS詳しくないんだけど これChromeのデバッガで547行目にブレークポイントつけたら全ユーザーのパスワードわかっちゃわない?
54 19/05/19(日)14:49:42 No.592434166
うちの会社で動いてる20年モノのイントラのシステムも インジェクションし放題だったよ 流石に全テーブルドロップみたいなお試しは怖くてしてないよ
55 19/05/19(日)14:50:07 No.592434265
>そりゃあもうばっちり なんでクライアント側で直接sqlを動かせるような関数?でいいんだっけがそもそもあるのこれ 何させるためのものだったの
56 19/05/19(日)14:50:09 No.592434272
>これChromeのデバッガで547行目にブレークポイントつけたら全ユーザーのパスワードわかっちゃわない? はい
57 19/05/19(日)14:50:13 No.592434285
こういうのやりたい時ってどこから手をつけて勉強すればいいの?
58 19/05/19(日)14:50:15 No.592434294
学生のとき似たようなことしたのであまりバカにできない
59 19/05/19(日)14:50:23 No.592434328
ログ整理する時にしかプログラミングしないSEだけど一読しただけでおかしいのがわかる ごく小規模で完全にイントラの取り敢えず動けばいいやレベルで身内向けだったらギリギリわかるけどクリック操作してるからWEB画面から打つんでしょ? こんなのイントラと言えどオープン系システムに乗せたら怒られるどころじゃないよ
60 19/05/19(日)14:50:31 No.592434362
SQL面倒だし全件とってフロントで処理しよ…な人間は多い んでDBが遅いとか言うんだから堪らない
61 19/05/19(日)14:50:58 No.592434463
DDL文実行できたりするのかな
62 19/05/19(日)14:51:25 No.592434544
>あんまJS詳しくないんだけど >これChromeのデバッガで547行目にブレークポイントつけたら全ユーザーのパスワードわかっちゃわない? ブレークポイントなんて丁寧なことしなくてもネットワークの通信内容見たら全部json形式かなんかで見られるだろ
63 19/05/19(日)14:51:46 No.592434620
ユーザーテーブル全部抜かれるだけならいいだろ injection許容するってのは権限設定ちゃんとされてないと他のテーブルも自由にCRUDできるってことだぞ OSコマンド発行してサーバの腹の中ごにょごにょするストアド作って走らせることも自由自在だぞ
64 19/05/19(日)14:51:52 No.592434645
当然SSLなんか使ってないだろうしな
65 19/05/19(日)14:52:13 No.592434719
こんなシステムでそうなってるとは思えないけど 一般的にdb上にパスワード保存するときは暗号化してる
66 19/05/19(日)14:52:37 No.592434791
jsが全くわからないけどユーザー情報を暗号化せず全部流し込んでると聞いて素人でもやばいなと思った
67 19/05/19(日)14:52:43 No.592434805
パスワードは暗号化じゃなくてハッシュ化するだろ普通
68 19/05/19(日)14:53:21 No.592434920
>injection許容するってのは権限設定ちゃんとされてないと他のテーブルも自由にCRUDできるってことだぞ >OSコマンド発行してサーバの腹の中ごにょごにょするストアド作って走らせることも自由自在だぞ スレ画の脆弱性はインジェクションですらないと思う ただのDBへの素のインターフェースを公開してるんだから
69 19/05/19(日)14:53:23 No.592434928
apiServiceの存在が邪悪すぎる
70 19/05/19(日)14:53:34 No.592434964
クローズドな環境ならまぁあるかもね 学校の先生管理システムとか
71 19/05/19(日)14:53:43 No.592434995
でもパスワード忘れたから教えろって言われたし… 初期化再設定とか面倒だから教えろって言われたし…
72 19/05/19(日)14:54:12 No.592435076
本当はお塩入れてくれと思うけどもう最近はハッシュ化してれば偉いよ
73 19/05/19(日)14:54:14 No.592435085
これを書くような奴の存在よりこれを止められない上司がカス
74 19/05/19(日)14:54:40 No.592435166
よくわからないけどこの処理ならsql文に変数が何もないからテーブルはいじられないとかにはならないとかでもないのか プログラムこわい
75 19/05/19(日)14:54:47 No.592435186
まず開発者コンソールからapiService.sql叩く 絶対やる
76 19/05/19(日)14:54:52 No.592435204
>一般的にdb上にパスワード保存するときは暗号化してる 良くわからないからfirebaseに任せるね…
77 19/05/19(日)14:55:01 No.592435241
シス管に言っても嫌がられるか目をつけられるだけだし黙ってよってなる結局
78 19/05/19(日)14:55:14 No.592435283
よくわからないから同じ塩を使った
79 19/05/19(日)14:55:24 No.592435308
>本当はお塩入れてくれと思うけどもう最近はハッシュ化してれば偉いよ このシステムだと塩入れてようが何しようがどうとでもなるけどな!
80 19/05/19(日)14:56:00 No.592435428
でもそんな悪いこと考える人とか 10人中3人ぐらいだろ
81 19/05/19(日)14:56:40 No.592435582
>10人中3人ぐらいだろ 多くね
82 19/05/19(日)14:56:45 No.592435604
脆弱性指摘したけどそんなことする奴いないだろって何の対処もされなかった 誰か会社のシステムに破滅的なSQLインジェクションしてくんねぇかな
83 19/05/19(日)14:56:51 No.592435624
usersテーブルにINSERTすることで大人気サービスを装ってサービス終了を延ばすことができる!
84 19/05/19(日)14:57:29 No.592435738
SQLインジェクション!
85 19/05/19(日)14:58:03 No.592435852
>よくわからないけどこの処理ならsql文に変数が何もないからテーブルはいじられないとかにはならないとかでもないのか SQL文をテキストで投げてるだけだから差し替えれる
86 19/05/19(日)14:58:30 No.592435933
sqlインジェクションは定番すぎて逆にwaf入れるだけでほぼ防げたりするのがタチ悪い
87 19/05/19(日)14:58:59 No.592436037
>SQL文をテキストで投げてるだけだから差し替えれる もしかして543行とかで止めて中身書き換えたらやれちゃうのこれ ひどい
88 19/05/19(日)14:59:16 No.592436093
これぐらいの優しい世界が欲しい インフラやブラウザ側で悪意を防いで欲しい
89 19/05/19(日)14:59:44 No.592436188
apiService.sqlが邪悪すぎる・・・
90 19/05/19(日)15:00:53 No.592436450
Accessとかで動いてたシステムを無理やりWebに移植した結果こんな感じになったのかねえ
91 19/05/19(日)15:00:59 No.592436463
インジェクションなんてもうやって来る奴いないだろということで対策をしないというコスト削減
92 19/05/19(日)15:01:21 No.592436530
ログインに何分かかるんだろうな
93 19/05/19(日)15:01:23 No.592436541
>もしかして543行とかで止めて中身書き換えたらやれちゃうのこれ >ひどい むしろapiServiceの中身見たらログインページ使わずに自由なクエリ発行し放題にできるよ
94 19/05/19(日)15:02:26 No.592436766
>むしろapiServiceの中身見たらログインページ使わずに自由なクエリ発行し放題にできるよ そんな事も出来るのか…
95 19/05/19(日)15:02:33 No.592436791
善意で動いてるサービスって割と多いね 文章自動アップロード公開を学習サイトで作ったよって聞いたけどちんこちんこ書き放題だなってシステムだった
96 19/05/19(日)15:02:37 No.592436810
>ログインに何分かかるんだろうな ユーザー数が10000人程度なら1-2秒だと思うよ
97 19/05/19(日)15:02:48 No.592436869
'と"が混在してるからクソ!
98 19/05/19(日)15:02:53 No.592436886
apiServiceのせいでログイン機構が全く意味をなしていない…
99 19/05/19(日)15:03:32 No.592437035
サービスの規模によっては普通に何人か同時ログインしただけでやばそう
100 19/05/19(日)15:03:34 No.592437041
ログインできたとしてcookieにログインフラグが立ってるだけで そいつのユーザーIDとかサーバ側で何一つ把握できないんですが どうしたらいいの
101 19/05/19(日)15:03:42 No.592437077
drop tableできるよね… select * from users;が邪悪すぎる…
102 19/05/19(日)15:03:48 No.592437096
関数名や変数名がシンプルすぎるし何かの教材なのでは?
103 19/05/19(日)15:04:22 No.592437214
>ログインできたとしてcookieにログインフラグが立ってるだけで >そいつのユーザーIDとかサーバ側で何一つ把握できないんですが >どうしたらいいの わからん 誰かがログインした
104 19/05/19(日)15:04:26 No.592437223
俺バカだからこれ何してるのか教えろ
105 19/05/19(日)15:04:33 No.592437252
>select * from users;が邪悪すぎる… 上でも言われてるけどそういう問題じゃないと思う
106 19/05/19(日)15:04:35 No.592437262
ログイン周りとセッション周りはもう自分では実装したくない cognitioに投げる
107 19/05/19(日)15:04:47 No.592437299
ちゃんとインデントしててえらい!
108 19/05/19(日)15:04:53 No.592437320
こんなゴミ今時狙って作らないと逆に作れない
109 19/05/19(日)15:04:54 No.592437328
>どうしたらいいの 毎回クッキー読めばフロント側だけでログイン状態を判断できる!便利!
110 19/05/19(日)15:05:08 No.592437368
ファイルの中身を書き換えるだけでやりたい放題だぜ
111 19/05/19(日)15:05:38 No.592437474
こんな感じの社内勤怠システムで退勤打刻を定時にUpdateするようにして昼くらいに帰宅してたな
112 19/05/19(日)15:06:00 No.592437552
>ログイン周りとセッション周りはもう自分では実装したくない >cognitioに投げる cognitoでAWSの権限周り絞ろうとすると発狂しそうになるんだけど AWS関係ない単なるログイン周りだけなら便利なのかな
113 19/05/19(日)15:06:14 No.592437605
>そいつのユーザーIDとかサーバ側で何一つ把握できないんですが きっとログインマーク表示させるためだけに毎回やるのではないかと メインの認証処理はまた別で走っるとかね
114 19/05/19(日)15:06:18 No.592437625
apiServiceの中身はさすがにわからないか
115 19/05/19(日)15:06:38 No.592437700
「」は賢いなあ
116 19/05/19(日)15:07:44 No.592437928
>apiServiceの中身はさすがにわからないか スレ画内にないというだけでこのページにアクセスできるやつにはわかるぞ
117 19/05/19(日)15:08:31 No.592438095
これ全員善人なら、DBにはSelectしか投げてないので ロックかかることなく、複数人が同時アクセスしても大丈夫だし ログイン状態をクライアントだけで判断させているから DBにはUpsertが飛ばず良かったね!
118 19/05/19(日)15:08:42 No.592438135
実際やらかしてそうなプログラマ「」がいそうなのか
119 19/05/19(日)15:09:17 No.592438276
上か下の行にapiServiceも書いてあるってこと?
120 19/05/19(日)15:09:41 No.592438344
SQL文を引数に取るメソッドなんて どう考えてもDB接続周りの手続きとSQL発行処理してるから このままでもなんでもできるよね
121 19/05/19(日)15:10:14 No.592438468
全員善人ならパスワード自体要らねえんじゃねえかな…
122 19/05/19(日)15:10:39 No.592438555
全ての行につっこみどころあるのが凄い 狙ってやらないと書けないと思う
123 19/05/19(日)15:10:54 No.592438620
参照しかしないので ログインはありません
124 19/05/19(日)15:11:00 No.592438641
>これ全員善人なら、DBにはSelectしか投げてないので 更新処理なくてログインがこれで良いならDB使ってる時点で間違いだよ! basic認証でリストベタ書きするだけで良いよ!
125 19/05/19(日)15:12:12 No.592438885
そもそもこれ自体はなんなの…
126 19/05/19(日)15:13:30 No.592439145
https://qiita.com/YSRKEN/items/0095cf75be3f607b0f98
127 19/05/19(日)15:13:34 No.592439159
>上か下の行にapiServiceも書いてあるってこと? このjsはお手元のブラウザで動くためのものなのでapiServiceもブラウザから読めるどこかに定義されてるのです
128 19/05/19(日)15:15:22 No.592439568
>※元記事のタイトルに記載されていますが、このコードはイントラネット内で動作していたものです。 よかった…
129 19/05/19(日)15:15:48 No.592439663
パスワードを平文で保存しているくらいのことが霞むくらいクソ
130 19/05/19(日)15:16:37 No.592439840
よかった…悪意のあるユーザーなんていなかったんだ…
131 19/05/19(日)15:16:52 No.592439906
SQLかjsの入門書10分くらい読んだだけの中学生でもこれはやばいって気付くと思う
132 19/05/19(日)15:18:16 No.592440215
そりゃ閉じた世界でしか動かせないよな
133 19/05/19(日)15:18:22 No.592440232
>SQLかjsの入門書10分くらい読んだだけの中学生でもこれはやばいって気付くと思う 基礎とか素養ない奴がそれ出来たら流石に天才の部類だわ
134 19/05/19(日)15:18:37 No.592440297
>>※元記事のタイトルに記載されていますが、このコードはイントラネット内で動作していたものです。 >よかった… ジョークとか悪例としてでっち上げられたものじゃない実際に運用されてたってだけでよかったかどうか…
135 19/05/19(日)15:18:56 No.592440373
まずjqueryがクソ