1 名前:デフォルトの名無しさん [2020/09/07(月) 18:56:51.64 ID:4fn7uU/g.net] スレ立てるまでもない質問はここで 154匹目
314 名前:デフォルトの名無しさん mailto:sage [2020/09/25(金) 02:44:14.75 ID:4GDMhKox.net] 質問ですがこのプログラムだとノック>1分待つが永久になるのでこれが10回で終わらせるにはどうすればいいでしょうか? booleanのと組み合わせてやるのはムリでしょうか? あくまでwhileとboolean使ってでお願いします public class Main { public static void main(String[] args) { boolean doorClose = true; while (doorClose == true) { System.out.println("ノックする"); System.out.println("一分待つ"); } System.out.println("部屋に入る"); } }
315 名前:デフォルトの名無しさん mailto:sage [2020/09/25(金) 02:58:10.28 ID:+2VBuIVO.net] 学校の課題?
316 名前:デフォルトの名無しさん mailto:sage [2020/09/25(金) 06:40:15.33 ID:+l2B7ows.net] booleanを使えばいいだけなら、数えた結果が10になったかどうかをbooleanに入れればいいだけ 加算を使ってはならないなら…booleanが4つあれば15まで数えられるな(実質+1するんだけど) ifも条件演算子も使ってはならないなら、無理 なんでそんなくだらない条件を満たさなきゃならんのだ
317 名前:デフォルトの名無しさん mailto:sage [2020/09/25(金) 06:42:03.04 ID:BU0fUt+3.net] あくまでwhileとboolean public class Main { public static void main(String[] args) { boolean doorClose = true; boolean b1 = false; boolean b2 = false; boolean b4 = false; boolean b8 = false; while (doorClose == true) { System.out.println("ノックする"); System.out.println("一分待つ"); b8 ^= b1 & b2 & b4; b4 ^= b1 & b2; b2 ^= b1; b1 = !b1; doorClose ^= b2 & b8; } System.out.println("部屋に入る"); } }
318 名前:デフォルトの名無しさん mailto:sage [2020/09/25(金) 06:51:39.50 ID:BU0fUt+3.net] b1 = !b1 より b1 ^= true の方がいいか
319 名前:デフォルトの名無しさん mailto:sage [2020/09/25(金) 07:00:04.98 ID:fPqU3y5p.net] >>314 無理ではないが非合理なんでbooleanだけでやれなんて珍妙な縛りを出した奴は殴れ 方法はループ回数個のbooleanを用意 例として三回ループを示す(いろいろ省略 b1=false b2=false b3=false while(!b3){ print if(b1){ if(b2){ b3=true } b2=true } b1=true }
320 名前:デフォルトの名無しさん mailto:sage [2020/09/25(金) 07:10:22.16 ID:BU0fUt+3.net] マジレスすると出題者はwhileの使い方を教えたかっただけで、booleanしか使うなともintを使うなとも言ってないだろうから doorClose = ++i < 10; で良さそう
321 名前:デフォルトの名無しさん mailto:sage [2020/09/25(金) 11:28:52.50 ID:4GDMhKox.net] すみません 出題されたわけでもなく、ただの興味本位です 勉強になります。作って頂きありがとうございました
322 名前:デフォルトの名無しさん mailto:sage [2020/09/25(金) 12:49:22.05 ID:ZK6gJNpW.net] 質問とは関係ないけどこういうときのdoorClose変数はdoorIsClosedって命名するものだよ while (doorIsClosed) で自然な英文として読めるようにさ
323 名前:デフォルトの名無しさん mailto:sage [2020/09/25(金) 13:39:07.62 ID:RwjETZMM.net] Booleanでループなんてバグの原因になるだけだろ
324 名前:デフォルトの名無しさん mailto:sage [2020/09/25(金) 16:42:59.79 ID:zl67KOre.net] >>311 すいません気付いていませんでした 一分間の間にどのユーザが何秒間ある行動をしたかログをとるもので、一分ごとに送信を行います とりあえず主キー無しで思った動作は実装できました
325 名前:デフォルトの名無しさん mailto:sage [2020/09/25(金) 16:54:12.36 ID:zl67KOre.net] 管理者用のSQLからログをSELECTしてグラフに起こすシステムも実装できたので、とりあえず大丈夫だと思います
326 名前:デフォルトの名無しさん [2020/09/27(日) 16:44:07.16 ID:Pg+r1YoA.net] これってふつうなの? もしかしたらwsl2が複数ダウンロードされてるの? わかるひといませんか? PS C:\Users\all> wsl -l -v NAME STATE VERSION * Ubuntu Stopped 2 docker-desktop-data Stopped 2 docker-desktop Stopped 2
327 名前:デフォルトの名無しさん [2020/09/27(日) 17:24:56.57 ID:Pg+r1YoA.net] >>326 解決しました すいません
328 名前:デフォルトの名無しさん [2020/09/27(日) 19:43:51.51 ID:fx+uDr5t.net] なにごとも動きゃいいですか?
329 名前:デフォルトの名無しさん [2020/09/27(日) 21:13:46.14 ID:eIKg6nYv.net] いいえ、保守性も考えましょう
330 名前:デフォルトの名無しさん [2020/09/27(日) 21:42:20.56 ID:fx+uDr5t.net] うるせー
331 名前:デフォルトの名無しさん mailto:sage [2020/09/28(月) 22:38:42.81 ID:xque+snB.net] コマンドプロンプトでIP指定するpingコマンドの操作について、 大学のPCから自宅のip宛も自宅のPCから大学のIP宛もどちらもタイムアウトするんですが、大学のネットワークがこういうアクセスをブロックするのってあるあるなのでしょうか? ファイアウォール切るとかはやってみました
332 名前: mailto:sage [2020/09/28(月) 23:09:15.32 ID:iFBbxDDj.net] >>331 私は外からの ping は無視するように自分のルータを設定しています ping は TCP でも UDP でもなく ICMP ですから、正確には ping では TCP/UDP 接続可能かどうかは判断できないのでは?
333 名前:デフォルトの名無しさん mailto:sage [2020/09/28(月) 23:43:27.74 ID:QIpyCS2B.net] AWS の例題とか見てても、ウェブサーバーを作っても普通、TCP:80 しか開放しないのでは? ICMP を開放するかね?
334 名前:デフォルトの名無しさん mailto:sage [2020/09/28(月) 23:43:44.00 ID:f+Z5FJs8.net] SQL Serverへの外部ネットワークからのTCP/IP接続がうまく行かないのでいろいろ調べている素人です ルータの設定は盲点だったので見直してみます
335 名前:デフォルトの名無しさん mailto:sage [2020/09/28(月) 23:48:39.63 ID:f+Z5FJs8.net] 接続文字列の書き方が悪いのかと最初は四苦八苦していたのですが、そもそも接続先のipにpingも送れないのがおかしいのではとフワフワの知識から考えた次第です
336 名前:デフォルトの名無しさん mailto:sage [2020/09/29(火) 07:30:43.94 ID:RtWsU+I8.net] 外部ネットワークからDB接続できないのは普通に大学側のファイアウォールで遮断されているものと思われ
337 名前:デフォルトの名無しさん mailto:sage [2020/09/29(火) 09:31:29.38 ID:9Z7EjLFi.net] tracertってのをやってみると大学に入って数層で止まるので多分そうですね……かなしい
338 名前:デフォルトの名無しさん mailto:sage [2020/09/29(火) 11:20:57.52 ID:7CQkQDjj.net] 教授によると、AWS経由なら連携できるみたいです。 SQL ServerもAWSで建てれるみたいなので簡単に移行できそうですね お騒がせしました
339 名前:デフォルトの名無しさん mailto:sage [2020/09/29(火) 11:44:43.16 ID:ztORdlGy.net] >>338 大学名書いてないから大丈夫とは思うけど、ファイアウォールのホワイトリスト設定に関わる情報を掲示板で話すのは良くないから、気を付けたほうが良い 意識しておかないと、まずい情報をポロリと漏らしかねない
340 名前:デフォルトの名無しさん [2020/09/29(火) 11:57:12.46 ID:LHxd7NoO.net] 発信をホワイトリストで管理してくれる大学なんてあり得るのか?
341 名前:デフォルトの名無しさん mailto:sage [2020/09/29(火) 12:44:17.35 ID:ztORdlGy.net] え、AWSから学内のSQLサーバーに接続する話 安全考えるとAWSのアドレスのリストでファイアウォール通過を許可しちゃったら無防備に等しいと思うんだけどな
342 名前:デフォルトの名無しさん mailto:sage [2020/09/29(火) 13:17:26.53 ID:rZRnYPTQ.net] AWS触ったことないんだろうけど、AWSにはElastic IPというのがあって、ユニークで不変なIPアドレスを取得できるんだよ
343 名前:デフォルトの名無しさん mailto:sage [2020/09/29(火) 13:27:37.30 ID:ztORdlGy.net] >>342 AWSからなら連携できる、ならば固定アドレスでリスト作っている訳ではない、 AWSで割り当てられる固定アドレスリストもしくは逆引きしてAWSであるアドレスを許可しているものと想定
344 名前:デフォルトの名無しさん mailto:sage [2020/09/29(火) 13:29:52.99 ID:ztORdlGy.net] 固定アドレスのホワイトリストだったら、自分の保有しているアドレスを申請すれば良いことになり、AWSならという前提が意味を持たない
345 名前:デフォルトの名無しさん mailto:sage [2020/09/29(火) 13:38:58.10 ID:ztORdlGy.net] SSHフォワーディングとかVPNで認証かましてファイアウォール通過させるってのは一般的じゃないのかな?
346 名前:デフォルトの名無しさん mailto:sage [2020/09/29(火) 13:45:00.46 ID:rZRnYPTQ.net] ああなるほど、言いたいことを理解した まあ暗に特定のAWSアカウント(or VPC)との間の通信が許可されていると考えるのが自然だろうし、 >>338 の書き振りからすると彼はそのアカウントを弄れるんじゃないかな
347 名前:デフォルトの名無しさん mailto:sage [2020/09/29(火) 13:56:51.79 ID:ztORdlGy.net] >>346 なるほど、認証とか済ませてある特定のVPCをAWSと呼んでるって考えた方が妥当かー
348 名前:デフォルトの名無しさん mailto:sage [2020/09/29(火) 14:11:07.13 ID:7CQkQDjj.net] >>339 ご指摘ありがとうございます 気をつけます >>346 研究室で認可済みのアカウントがあるそうです >>341 SQLサーバーの場所は学内ではなくVPC?側にする(これから私が作る)ので大丈夫なのだと思います
349 名前:デフォルトの名無しさん mailto:sage [2020/09/29(火) 14:24:11.99 ID:7CQkQDjj.net] アホ過ぎてスレを混乱させたようで申し訳ないです _| ̄|○
350 名前:デフォルトの名無しさん [2020/09/29(火) 18:51:13.05 ID:Q+HTeu6k.net] 複数の戻り値を定義できる関数(?)を持っている言語ってありますか?
351 名前:デフォルトの名無しさん mailto:sage [2020/09/29(火) 19:20:32.26 ID:ztORdlGy.net] RubyもPythonも、 静的言語でもRustやgoといった最近の言語ならできるやつはある
352 名前:デフォルトの名無しさん [2020/09/29(火) 19:25:54.91 ID:iE38wEdU.net] 配列やリストを返せば何でもいいと思います! 最近はtupleと言う便利なのを扱える言語もたくさんあります
353 名前: mailto:sage [2020/09/29(火) 19:26:37.51 ID:5fiAtNx/.net] >>350 C ならば構造体の中にいくらでも変数を積み込んで構造体リターンでなんでもできます 構造体が値渡し、値返しできるのは K&R2 の妥協ポイント、私に言わせると堕落ポイントだと思っています
354 名前:デフォルトの名無しさん mailto:sage [2020/09/29(火) 19:58:01.47 ID:A+gsUsCm.net] >>350 んなもんどんな言語でも普通できる
355 名前:デフォルトの名無しさん mailto:sage [2020/09/29(火) 22:07:16.07 ID:Ic6zP4VX.net] var (x, y) = func() みたいなことを言ってるならそこそこモダンな言語ならみんな使えるんじゃないかな Kotlin、C#、ES6あたりもいけるね 分割代入とかアンパッキングとかで検索
356 名前:デフォルトの名無しさん mailto:sage [2020/09/29(火) 22:49:19.29 ID:Iz7+ZlTk.net] AWS の3階層システム(Web, AP, DB 各サーバー)では、 公開してるのは、ELB(Elastic Load Balancing)ロードバランサー。 ELBが複数のWordPress(WP)などへ分散させる WPが、プライベート・サブネットのMySQL のマスター・レプリカへアクセスするので、 直接、DBへアクセスできない そんなに、プログラミングに詳しい教授と言えば、猫の人がいるけど?w
357 名前:356 mailto:sage [2020/09/29(火) 22:54:50.68 ID:Iz7+ZlTk.net] Amazon Web Services パターン別構築・運用ガイド 改訂第2版 (Informatics&IDEA)、 NRIネットコム株式会社、2018 YouTube で有名なサーバー構築運用屋、くろかわこうへいのお勧めの本
358 名前:350 mailto:sage [2020/09/30(水) 00:41:19.81 ID:/n+3Mkwe.net] >>351-355 の皆様 助言くださってどうもありがとうございました。 大変勉強になりました。 特に>>355 さん。どんぴしゃ。
359 名前:デフォルトの名無しさん mailto:sage [2020/09/30(水) 05:36:29.19 ID:4o6tPKL3.net] Schemeとかだと配列などを使わずに多値を返せるけどマイナーすぎるか
360 名前:デフォルトの名無しさん mailto:sage [2020/09/30(水) 08:46:43.14 ID:6w0L7884.net] 画像や動画の圧縮伸張は多値データを扱う関数だったりして
361 名前:デフォルトの名無しさん mailto:sage [2020/09/30(水) 09:30:21.47 ID:9FgTCMcN.net] 圧縮伸長は戻り値がストリームなだけじゃないかな AviSynthはそんな感じ
362 名前:デフォルトの名無しさん mailto:sage [2020/09/30(水) 09:40:05.19 ID:9FgTCMcN.net] 複数の値を返す方法を大別するとこんな感じかな ・要素の型が一律な配列、リスト、ストリームの類(C,Java) ・型が自由だけど別途宣言が必要な構造体、クラス(C,Java) ・タプル型等にシンタックスシュガーを与えた分割代入(Python,C#,Kotlin) ・アンパッキングのコストのない多値(Scheme,Lua)
363 名前:デフォルトの名無しさん mailto:sage [2020/09/30(水) 10:11:39.53 ID:kv7yAT8F.net] 動的型付けのない言語だと複数戻り値受けるの大変
364 名前:デフォルトの名無しさん mailto:sage [2020/09/30(水) 10:22:40.75 ID:Y7XJ9kqa.net] パターンマッチングを使ったデストラクチャリングを 代入においてどの程度サポートしているかという程度問題 サポートしてる程度が低いほど 自分でごちゃごちゃ書かないといけない
365 名前:デフォルトの名無しさん [2020/09/30(水) 11:41:39.95 ID:TOyie83v.net] pythonでcsvファイルを読み込むのですが、中身がすべてnanになってしまいます。解決方法を教えてください
366 名前:デフォルトの名無しさん [2020/09/30(水) 12:01:20.97 ID:AwRjzN5n.net] 分かる人にソースを見てもらってください
367 名前:デフォルトの名無しさん mailto:sage [2020/09/30(水) 12:18:09.82 ID:NNWpaWfq.net] >>362 なるほど勉強になります
368 名前:デフォルトの名無しさん mailto:sage [2020/09/30(水) 12:41:26.50 ID:/dbaz1tV.net] >>365 Python のスレで聞いて下さい! たぶん、数値として解釈できないのだろう
369 名前:デフォルトの名無しさん [2020/09/30(水) 12:45:50.44 ID:NNWpaWfq.net] 味付けがまずいよ、ソースが要るよ
370 名前:デフォルトの名無しさん [2020/09/30(水) 12:56:20.64 ID:xxSg96Gs.net] しょうゆじゃダメですか?
371 名前:デフォルトの名無しさん [2020/09/30(水) 13:33:55.71 ID:NNWpaWfq.net] はしょっても結局焦げ付くからさ
372 名前:デフォルトの名無しさん [2020/09/30(水) 14:01:31.72 ID:AwRjzN5n.net] 最初は何もつけずにお召し上がりください!
373 名前:デフォルトの名無しさん [2020/09/30(水) 20:27:20.92 ID:pe+tBhYh.net] Webアプリは作ったことがあるんですが gitやdockerをつくるにはどうすればいいですか?言語はCでやりたいと思ってるんですが
374 名前:デフォルトの名無しさん [2020/09/30(水) 20:29:48.47 ID:qrMJGMd/.net] ショウガ無いなぁー
375 名前:デフォルトの名無しさん [2020/09/30(水) 20:37:06.52 ID:FNqhIy19.net] >>373 石けん作ったことあるんでしょ? だったら消毒液をつくるにはどうすればいいかもわかるよね? それも水でやりたいなら電気分解じゃないかな
376 名前:デフォルトの名無しさん mailto:sage [2020/09/30(水) 21:10:22.10 ID:s9/SbtbT.net] switchでおみくじゲーム(笑)を使っているレベルの人間が、 GitとかGithubとかバージョン管理ソフトを使うメリットってありますかね? とりあえず使ってみたら、「なんでいままで使わなかったんだ!」って感動しますかね?
377 名前:デフォルトの名無しさん mailto:sage [2020/09/30(水) 21:10:53.31 ID:s9/SbtbT.net] ×使っている 〇作っている
378 名前:デフォルトの名無しさん mailto:sage [2020/09/30(水) 21:23:43.82 ID:pc2vUBN1.net] >>376 感動のあまり、PCゲームのセーブデータまでGitでバージョン管理するようになる
379 名前:デフォルトの名無しさん mailto:sage [2020/09/30(水) 21:35:48.35 ID:s9/SbtbT.net] 絶対嘘だ(笑)
380 名前:デフォルトの名無しさん mailto:sage [2020/09/30(水) 21:38:59.03 ID:mE7lggX7.net] >>378 ソースコードじゃないから意味がないな
381 名前:デフォルトの名無しさん [2020/09/30(水) 21:42:26.84 ID:pe+tBhYh.net] >>375 Webアプリと言ってもフレームワークだよりだったのでわからないです
382 名前:デフォルトの名無しさん mailto:sage [2020/09/30(水) 21:50:38.24 ID:pc2vUBN1.net] >>380 いや、マジよ マインクラフトとかのコンストラクション系や、RPGでもキャラビルドが取り返しつかない系でセーブを戻すため
383 名前:デフォルトの名無しさん mailto:sage [2020/09/30(水) 21:54:40.29 ID:mE7lggX7.net] >>382 だからソースコードじゃないからソースコード管理システム管理する意味がない 「ソースコードの断片を再利用できないから」 そういうのはただのバックアップソフトで十分
384 名前:デフォルトの名無しさん mailto:sage [2020/10/01(木) 00:13:27.89 ID:511kcisg.net] double型で整数/整数=整数となる計算をした時は正確な値になりますか? どの整数もdouble型で正確に表せる範囲とします 例えば ceil(8.0/3.0)=3.0 ceil(9.0/3.0)=3.0←これが4.0になってしまう心配 ceil(10.0/3.0)=4.0
385 名前:デフォルトの名無しさん mailto:sage [2020/10/01(木) 00:17:10.73 ID:5ZG2Vz6Q.net] >>384 「double型で正確に表せる範囲」をお前はちゃんと知ってるんか? ちょっといってみぃよ
386 名前:デフォルトの名無しさん mailto:sage [2020/10/01(木) 00:22:27.53 ID:U2i45Vms.net] 処理系次第としか言えないかなぁ テストするしかないよ
387 名前:デフォルトの名無しさん mailto:sage [2020/10/01(木) 00:22:29.39 ID:511kcisg.net] >>385 53bitの範囲ですか…?
388 名前:デフォルトの名無しさん mailto:sage [2020/10/01(木) 00:26:34.47 ID:5ZG2Vz6Q.net] >>387 仮数部53bit(52bit+符号1bit)だな その意味はわかってるか? 53bitで正確に表せる範囲であれば正確に表せる つまりあんたは意味がないことを聞いてるんだよ 正しく表せる数字は正しく表せますか?と言ってる 正確に表せる範囲であれば正確に表せるよw
389 名前:デフォルトの名無しさん mailto:sage [2020/10/01(木) 01:28:46.90 ID:theiHz1p.net] 浮動小数点は誤差を含むから、a == b みたいに比較しない 誤差の範囲内で、OK とする。 b - 誤差 <= a <= b + 誤差 a == b を使いたいなら、整数型へ変換して比較すべき
390 名前:デフォルトの名無しさん mailto:sage [2020/10/01(木) 05:42:25.73 ID:/D1HJJ3Q.net] >>383 ブランチ管理してくれるならバックアップでもいいかな あとリストアも自動で BunBackupでそこまでの機能ってあったっけ?
391 名前:デフォルトの名無しさん mailto:sage [2020/10/01(木) 07:57:28.84 ID:8lHIA6al.net] >>384 IEEE754の規定では、9.0/3.0なら正確に3.0を返さなければならないはず。
392 名前:デフォルトの名無しさん mailto:sage [2020/10/01(木) 13:06:08.35 ID:Fo5IxMM2.net] 名前空間で分類してるからクラス名を積極的に短くする vs かぶらないに越したことはないのでクラス名は長く書く どちらが正解なのでしょうか? //shared code namespace Domain { Foo FooDetail Bar IFooRepository IBarRepository IFooService IBarService }
393 名前:デフォルトの名無しさん mailto:sage [2020/10/01(木) 13:06:41.82 ID:Fo5IxMM2.net] //長い名前派 TooLongName.cshtml namespace UI { TooLongNameViewModel TooLongNameFooViewModel TooLongNameFooDetailViewModel TooLongNameBarViewModel TooLongNameModelMapper TooLongNameController TooLongNameFacade TooLongNameOther } //短い名前派 TooLongName.cshtml namespace UI { TooLongNameController // 設定より規約パターンのために短くできない namespace TooLongNameDetail { namespace ViewModels { Foo FooDetail Bar } ModelMapper Facade Other }}
394 名前:デフォルトの名無しさん [2020/10/01(木) 13:15:51.37 ID:OaA9a4hN.net] この手のものに正解は無いので 名前空間の方が好みだし、名前は短い方がいい
395 名前:デフォルトの名無しさん mailto:sage [2020/10/01(木) 13:43:58.49 ID:w51Lc0nW.net] 名前空間使って短くするほうが圧倒的に良いと思うけど切り方が微妙
396 名前:デフォルトの名無しさん mailto:sage [2020/10/01(木) 13:51:05.30 ID:Fo5IxMM2.net] >>395 参考までにあなたならどのように切りますか?
397 名前:デフォルトの名無しさん mailto:sage [2020/10/01(木) 14:35:38.69 ID:hOjhiI7q.net] 条件式と条件文って同じ意味ですか?
398 名前:蟻人間 mailto:sage [2020/10/01(木) 14:46:07.74 ID:7hENrO7v.net] >>397 多分、条件式の方が正しいと思うが、 250個以上のプログラム言語があるから、 条件文も正しいかも知れない。
399 名前:デフォルトの名無しさん mailto:sage [2020/10/01(木) 15:42:41.06 ID:bVq+7g5F.net] 値を返さないものが文、返すものが式って感じじゃね
400 名前:デフォルトの名無しさん mailto:sage [2020/10/01(木) 18:18:17.46 ID:mFu9oEu2.net] まあ確かに言語によるかもしれんけど 条件文とは例えばif文とかの全体を言っていて if(ここ) に入れるのが条件式と言ってるとかじゃないかね?
401 名前:デフォルトの名無しさん mailto:sage [2020/10/01(木) 18:29:37.75 ID:Njtwj5ZN.net] >>400 よく使われている常識的な言語だとそうだろうね。 独特の用語の使い方をする言語もあるから責任は持てないけれど。
402 名前:デフォルトの名無しさん mailto:sage [2020/10/01(木) 18:40:24.68 ID:w51Lc0nW.net] >>396 オーソドックスにやるならView/ViewModel/Controllerは Presentation Layerの中に並列に切る WebUI.Views WebUI.ViewModels WebUI.Controllers アーキテクチャ次第だから絶対にこうすべきという物があるわけではないけど とりあえずメジャーなサンプルプロジェクトを参考にしてみては? https://github.com/dotnet-architecture/eShopOnWeb https://github.com/jasontaylordev/NorthwindTraders
403 名前:デフォルトの名無しさん mailto:sage [2020/10/01(木) 22:50:18.59 ID:theiHz1p.net] >>392 Ruby on Rails では、1単語が多い bookmark, comment, todo とか、皆が使う
404 名前:デフォルトの名無しさん mailto:sage [2020/10/02(金) 02:12:32.96 ID:nnGmkCD2.net] 認証ありのSPAをSpringBoot2とReactで実現したくて勉強をしています いろんなサンプルプロジェクトを落としてきて見ているのですがどれも認証トークンをローカルストレージに保存する手法で作ってます こちらの記事ではそういう大事な情報をローカルストレージに入れるのはマズいと書かれていました https://techracho.bpsinc.jp/hachi8833/2019_10_09/80851 個人的には記事の内容の通りだと思うのですが多数のプロジェクトで使用されているからには何か対策があるからなのでしょうか またローカルストレージを使用しない手法を使用したプロジェクトをご存知であれば教えていただきたいです
405 名前:デフォルトの名無しさん mailto:sage [2020/10/02(金) 06:04:35.69 ID:gfOt11Rw.net] >>404 その記事でcookie使えと書いてあるじゃないか
406 名前:デフォルトの名無しさん mailto:sage [2020/10/02(金) 13:31:20.50 ID:aQA5qaSB.net] MVCフレームワークならいつもと同じようにCookie認証すればOK すると通常リクエストにもAJAXリクエストにも自動的に認証Cookieが乗っかる 後はCSRF対策用のヘッダーだけ載せ忘れないようにAJAXリクエストを共通コードでラップしておけば完璧
407 名前:デフォルトの名無しさん mailto:sage [2020/10/02(金) 17:28:18.61 ID:IzIkeFXj.net] ありがとうございます Cookie認証で実装しているプロジェクトを探してみます
408 名前:デフォルトの名無しさん mailto:sage [2020/10/02(金) 18:00:19.42 ID:J9beoHbU.net] これでも結局はクッキーで送られたIDでAPIをアクセスするんやろ? 一緒やんと思うんやけど何故これでセキュアと言い切れるのか
409 名前:デフォルトの名無しさん mailto:sage [2020/10/02(金) 18:25:31.43 ID:SqfSpP9U.net] XSS対策 http only Cookie 盗聴対策 secure Cookie CSRF対策 アンチフォージェリトークン 弱点は、ないッ!
410 名前:デフォルトの名無しさん mailto:sage [2020/10/02(金) 18:38:47.74 ID:gfOt11Rw.net] >>408 雑に説明するなら、http only cookie はスクリプトからアクセスできないから とりあえずCSRF周りの記事を読み漁るといい
411 名前:デフォルトの名無しさん mailto:sage [2020/10/02(金) 18:44:34.78 ID:gfOt11Rw.net] >>409 強引に難しいルートとしてだけど攻略不可能でもないと思う DNSポイズニングで偽証明局掴まされて、中間者攻撃でTLSを中継されたらどうしようもない
412 名前:デフォルトの名無しさん mailto:sage [2020/10/02(金) 18:50:42.09 ID:1uQRz/LD.net] XSSされたらCookie取られなくても即死じゃね? 正規のエンドポイントに不正リクエスト送られてアウト
413 名前:デフォルトの名無しさん mailto:sage [2020/10/02(金) 19:59:33.86 ID:J9beoHbU.net] >>410 そんなのコードだけの話でパケットみたら丸わかりやん・・・ こういうのでセキュアってなんか違うんじゃね? CSRFってこれもトークンなんだし結局は一緒かと
414 名前:デフォルトの名無しさん mailto:sage [2020/10/02(金) 20:53:53.02 ID:gfOt11Rw.net] >>413 えーと、ド素人乙