スレ立てるまでもない質問はここで 154匹目
■ このスレッドは過去ログ倉庫に格納されています
Amazon Web Services パターン別構築・運用ガイド 改訂第2版 (Informatics&IDEA)、
NRIネットコム株式会社、2018
YouTube で有名なサーバー構築運用屋、くろかわこうへいのお勧めの本 >>351-355の皆様
助言くださってどうもありがとうございました。
大変勉強になりました。
特に>>355さん。どんぴしゃ。 Schemeとかだと配列などを使わずに多値を返せるけどマイナーすぎるか 画像や動画の圧縮伸張は多値データを扱う関数だったりして 圧縮伸長は戻り値がストリームなだけじゃないかな
AviSynthはそんな感じ 複数の値を返す方法を大別するとこんな感じかな
・要素の型が一律な配列、リスト、ストリームの類(C,Java)
・型が自由だけど別途宣言が必要な構造体、クラス(C,Java)
・タプル型等にシンタックスシュガーを与えた分割代入(Python,C#,Kotlin)
・アンパッキングのコストのない多値(Scheme,Lua) パターンマッチングを使ったデストラクチャリングを
代入においてどの程度サポートしているかという程度問題
サポートしてる程度が低いほど
自分でごちゃごちゃ書かないといけない pythonでcsvファイルを読み込むのですが、中身がすべてnanになってしまいます。解決方法を教えてください >>365
Python のスレで聞いて下さい!
たぶん、数値として解釈できないのだろう Webアプリは作ったことがあるんですが
gitやdockerをつくるにはどうすればいいですか?言語はCでやりたいと思ってるんですが >>373
石けん作ったことあるんでしょ?
だったら消毒液をつくるにはどうすればいいかもわかるよね?
それも水でやりたいなら電気分解じゃないかな switchでおみくじゲーム(笑)を使っているレベルの人間が、
GitとかGithubとかバージョン管理ソフトを使うメリットってありますかね?
とりあえず使ってみたら、「なんでいままで使わなかったんだ!」って感動しますかね? >>376
感動のあまり、PCゲームのセーブデータまでGitでバージョン管理するようになる >>375
Webアプリと言ってもフレームワークだよりだったのでわからないです >>380
いや、マジよ
マインクラフトとかのコンストラクション系や、RPGでもキャラビルドが取り返しつかない系でセーブを戻すため >>382
だからソースコードじゃないからソースコード管理システム管理する意味がない
「ソースコードの断片を再利用できないから」
そういうのはただのバックアップソフトで十分 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 >>384
「double型で正確に表せる範囲」をお前はちゃんと知ってるんか?
ちょっといってみぃよ 処理系次第としか言えないかなぁ
テストするしかないよ >>387
仮数部53bit(52bit+符号1bit)だな
その意味はわかってるか?
53bitで正確に表せる範囲であれば正確に表せる
つまりあんたは意味がないことを聞いてるんだよ
正しく表せる数字は正しく表せますか?と言ってる
正確に表せる範囲であれば正確に表せるよw 浮動小数点は誤差を含むから、a == b みたいに比較しない
誤差の範囲内で、OK とする。
b - 誤差 <= a <= b + 誤差
a == b を使いたいなら、整数型へ変換して比較すべき >>383
ブランチ管理してくれるならバックアップでもいいかな
あとリストアも自動で
BunBackupでそこまでの機能ってあったっけ? >>384
IEEE754の規定では、9.0/3.0なら正確に3.0を返さなければならないはず。 名前空間で分類してるからクラス名を積極的に短くする
vs
かぶらないに越したことはないのでクラス名は長く書く
どちらが正解なのでしょうか?
//shared code
namespace Domain {
Foo
FooDetail
Bar
IFooRepository
IBarRepository
IFooService
IBarService
} //長い名前派
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
}} この手のものに正解は無いので
名前空間の方が好みだし、名前は短い方がいい 名前空間使って短くするほうが圧倒的に良いと思うけど切り方が微妙 >>395
参考までにあなたならどのように切りますか? >>397
多分、条件式の方が正しいと思うが、
250個以上のプログラム言語があるから、
条件文も正しいかも知れない。 まあ確かに言語によるかもしれんけど
条件文とは例えばif文とかの全体を言っていて
if(ここ) に入れるのが条件式と言ってるとかじゃないかね? >>400
よく使われている常識的な言語だとそうだろうね。
独特の用語の使い方をする言語もあるから責任は持てないけれど。 >>396
オーソドックスにやるならView/ViewModel/Controllerは
Presentation Layerの中に並列に切る
WebUI.Views
WebUI.ViewModels
WebUI.Controllers
アーキテクチャ次第だから絶対にこうすべきという物があるわけではないけど
とりあえずメジャーなサンプルプロジェクトを参考にしてみては?
https://github.com/dotnet-architecture/eShopOnWeb
https://github.com/jasontaylordev/NorthwindTraders >>392
Ruby on Rails では、1単語が多い
bookmark, comment, todo とか、皆が使う 認証ありのSPAをSpringBoot2とReactで実現したくて勉強をしています
いろんなサンプルプロジェクトを落としてきて見ているのですがどれも認証トークンをローカルストレージに保存する手法で作ってます
こちらの記事ではそういう大事な情報をローカルストレージに入れるのはマズいと書かれていました
https://techracho.bpsinc.jp/hachi8833/2019_10_09/80851
個人的には記事の内容の通りだと思うのですが多数のプロジェクトで使用されているからには何か対策があるからなのでしょうか
またローカルストレージを使用しない手法を使用したプロジェクトをご存知であれば教えていただきたいです >>404
その記事でcookie使えと書いてあるじゃないか MVCフレームワークならいつもと同じようにCookie認証すればOK
すると通常リクエストにもAJAXリクエストにも自動的に認証Cookieが乗っかる
後はCSRF対策用のヘッダーだけ載せ忘れないようにAJAXリクエストを共通コードでラップしておけば完璧 ありがとうございます
Cookie認証で実装しているプロジェクトを探してみます これでも結局はクッキーで送られたIDでAPIをアクセスするんやろ?
一緒やんと思うんやけど何故これでセキュアと言い切れるのか XSS対策 http only Cookie
盗聴対策 secure Cookie
CSRF対策 アンチフォージェリトークン
弱点は、ないッ! >>408
雑に説明するなら、http only cookie はスクリプトからアクセスできないから
とりあえずCSRF周りの記事を読み漁るといい >>409
強引に難しいルートとしてだけど攻略不可能でもないと思う
DNSポイズニングで偽証明局掴まされて、中間者攻撃でTLSを中継されたらどうしようもない XSSされたらCookie取られなくても即死じゃね?
正規のエンドポイントに不正リクエスト送られてアウト >>410
そんなのコードだけの話でパケットみたら丸わかりやん・・・
こういうのでセキュアってなんか違うんじゃね?
CSRFってこれもトークンなんだし結局は一緒かと 自分で作ったWebAPI(Lambda)からデータをGETするだけのサイトを作りたいのですが、フロントも自分で作った方がセキュリティ的に安全なのでしょうか?
もしセキュリティ的に問題無いのでしたらlivedoorブログとかで代用したいです >>415
問題ない
GETは普通のHTTP GETだから パスワード再設定のためにワンタイムパスワードをメールで送るパターンを採用してるシステムがよくあるけど
このメールって盗聴されたりしないんですか? >>418
これってクライアントから直近のSMTPサーバーまでの暗号化を強いるだけじゃないんですか?
SMTPリレー中のサーバーが1つでも非対応の場合は盗聴されてしまうのでは >>419
そうだけど、それはそのサイトの問題じゃないよね
変なメールプロバイダ使ってる人の問題
それに実際の話、サイトのOTPだとバレたとしても何か問題ある?
アカウントと紐付いて初めて問題になるから >>420
あ、いや問題はあるか
問題のあるプロバイダ使ってる人のアカウントを特定できるなら、パスワード再設定して盗聴したOTPでログインとか >>419
まあ、大体がメールのリレーに割り込むこと自体のハードルがかなり高いし やっぱりメールだとセキュアではないですよね…
なんでこんな脆弱なプロトコルがスタンダードのまま野放しになってるんだろう メール送信先と、OTPの発行されたシステムのアカウントの紐付けはどうやるんだろう
メールにアカウントのIDが書いてあったり下手なURLが書いてあったとしたら設計側の問題だよな セキュリティを気にするのだったらメールで認証するなということだな
昔の技術にただ乗りしているのだからメールシステムに問題があるんじゃなくて
採用する側が問題 セキュリティに「これしとけば完璧」なんてないのよ、いたちごっこだから
した方がしないよりはマシ
複数からの同時ログインを特別扱いしとけば横取りされたらすぐわかる、わからないよりはマシ
OTPは時限だし 1. ランダムトークン、メールアドレス、パスワード、タイムスタンプ、IP、セッションIDなど仮登録
2. 検証URLのクエリパラメータにランダムトークンのみを付けてメール送信
3. 検証URLにアクセスが来たらランダムトークン、有効期限、IP、セッションIDなど検証してメールアドレス、パスワードを本登録
メールはどう頑張っても盗聴される可能性がある
検証を厳しくすると、登録はPCだけどメール確認はスマホ、のパターンに対応できなくなる
検証を厳しくしても、メール盗聴者によるなりすましは防げない
検証を厳しくすると、うっかりクリック狙いのなりすましを防げる
初期登録の場合、メール盗聴されても個人情報、機密情報が抜かれることはないが、勝手に本登録されてしまうことはある
パスワード強制リセットの場合、ランダムパスワードをメール通知するか、メール認証の後で再入力を促すしか方法がないので、メール盗聴されるとアウト
リセット後、可能な限り速やかに、WEB画面からパスワード変更すべし
こんなところですかね
セキュリティ難しすぎて辛い 復号化するキーを画面上で発行してメールの中身を暗号化したり
ワンタイムパスワードをセッションID使って暗号化しておいて
同じセッションじゃないと使えないようにしたりすれば
メールアドレス == アカウントでもだいぶセキュアになるかも
でもパスワード忘れるような人にとってそういうのは異常にハードル高くて
サポートコストが増大するから特別なサイト以外はやらない
利便性とセキュリティのほどほどのバランス >>428
盗聴者がセッション開始することもできるからそれでは防げないかと
盗聴者:盗聴対象メールアドレスを入力、パスワード再設定セッション開始
盗聴者:パスワード再設定メールを盗聴、ワンタイムパスワード取得
盗聴者:ワンタイムパスワードを入力、パスワード再設定
盗聴者:パスワード再設定セッション終了
〜〜〜〜
正規ユーザー:身に覚えのないパスワード再設定メールを受信(この時点で手遅れ)
メールだとパスワード再設定が脆弱すぎる
パスワード再設定はメールじゃなく電話、SMSを必須にしたほうがいいのかも 不正アクセスに関しましては全て被害届を提出します
過去に実績もあります
って書いてればビビリからは攻撃受けないだろ
まぁ自動化して攻撃してるだろうから意味は無いかもしれんが >>429
標的のメールが常に盗聴可能な状態でパスワード再設定に必要な情報も持ってるって前提ならね
セキュリティに100%はないから
どういう種類の攻撃に対してどの程度の防御ができてるのかと
その攻撃が実現しうるリスクの程度で評価しないと なるほどメールアドレスがそのままアカウントIDになってるサービスでは盗聴に弱いのか
ならパスワード強制リセットのページにも別のワンタイムトークンを表示しておけば……いやそんなことしなくてもWeb側のセッションIDとメールの認証キーを内部で照合すれば、セッション固定攻撃と組み合わせない限りは安全なのでは? メール受信による認証は盗聴に弱いから、多要素認証の一部として効果を発揮するのであって、単独でパスワードリセットができるのは安全性が低い
せめて生年月日とか電話番号とかを合わせて聞くようなリセット方式にしないと心許ないってところかな セキュリティに100%はない
しかしマスコミをそれを知ってか知らずか
破られると猛烈にたたく
システムを作る側としては解がないわ 参考にAmazonのパスワードリセットのワークフローを調べた
1. メールアドレス入力、サブミット
2. ワンタイムパスワードメール受信
3. ワンタイムパスワード入力、サブミット
4. 新パスワード入力、サブミット
盗聴者が攻撃しようとしたらこれで攻撃できちゃうのでは?
1. 攻撃対象メールアドレス入力、サブミット
2. ワンタイムパスワードメール盗聴
3. ワンタイムパスワード入力、サブミット
4. 新パスワード入力、サブミット
Amazonが採用してるぐらいだからメール盗聴のリスクは考えなくてもいいのかな?
もう、わかんねえなこれ >>435
あー、なるほど、そのための秘密の3つの質問か
アレ、なんのためにあるのか謎だったけど必要な物だったんだな >>398-401
レスありがとうございます
そもそもプログラムの世界でいう「式」って、何なんですか?
「文」は理解できたけれど、「式」がいまいちピント来ません。
(どうしても算数の「式」のイメージが強くて抜けない)
文を構成する要素を「式」だと考えればよいですか? 式は評価できるもの
評価すると値やオブジェクトを得る
式は式や文の構成要素となる 式は式、項、因子から構成される
式は因子の構成要素にもなる Javaのifはif文なので直接変数に代入できない
Kotlinのifはif式なので直接変数に代入できる プログラムなんてレベルじゃないので申し訳ない質問ですが、スプレッドシートで同じシート内の別タブにリンク飛ばしたい場合、PCでは飛べるけどiPhoneのアプリからは、「リンクを取得」を押しても飛べないんですけど、仕様ですか?やり方あったら教えてほしいです。 Ruby では、if は文ではなく式なので、戻り値を返す。
Rubyの影響を受けている、Kotlin, Rust, Go など、最近の言語は式重視
p res = if 1 + 2 == 4
"yes"
else
"no"
end
res は、no となる SQLで四則演算させたりするのはあまり良くないのでしょうか?
そういう処理はアプリ側だけにしてSQLは極力シンプルにするのが理想ですか? そんな質問をする程度のレベルなら極力SQLに寄せた方がいい
プログラミング言語は自由度がとても高いので、酷いコードは本当にどうしようもない底無しのビチグソであり、深刻な技術的負債となる
それに比べればSQLは巧拙次第でパフォーマンスの差はあれど、バカでもそこまでソフトウェアの品質に壊滅的影響を与えることは少ない わかりました。ではこれからSQLを電卓アプリ代わりに使っていきます。 >>445
それは C の条件演算子/三項演算子(どちらもダサいネーミングだと思います)とか lisp の cond 特殊構文などの形で過去にありましたね Fortranでopenmpやり始めたんですが、遅いので調べてみたら、openmpを呼ばないで(シリアルと同じコード)単にOMP_NUM_THREADS =2とするだけで、OMP_NUM_THREADS =1より遅くなってしまうんですが、どういうことなんでしょうか。 SQLで頑張らなきゃいけないのは結局テーブル設計がダメってこと >>453
テーブル設計がいいと、SQLで頑張らなくていい例を
1つでいいからあげてください
ないならそのまま逃げて構いません(笑) >>454
クソテーブル設計者さん朝から発狂しちゃった……w >>453
SQLで頑張らなきゃいけない場合と
SQLで頑張ることを選択した場合を区別してるなら
おおむね同意 ■ このスレッドは過去ログ倉庫に格納されています