スレ立てるまでもない質問はここで 154匹目
■ このスレッドは過去ログ倉庫に格納されています
SQL Serverへの外部ネットワークからのTCP/IP接続がうまく行かないのでいろいろ調べている素人です
ルータの設定は盲点だったので見直してみます 接続文字列の書き方が悪いのかと最初は四苦八苦していたのですが、そもそも接続先のipにpingも送れないのがおかしいのではとフワフワの知識から考えた次第です 外部ネットワークからDB接続できないのは普通に大学側のファイアウォールで遮断されているものと思われ tracertってのをやってみると大学に入って数層で止まるので多分そうですね……かなしい 教授によると、AWS経由なら連携できるみたいです。
SQL ServerもAWSで建てれるみたいなので簡単に移行できそうですね
お騒がせしました >>338
大学名書いてないから大丈夫とは思うけど、ファイアウォールのホワイトリスト設定に関わる情報を掲示板で話すのは良くないから、気を付けたほうが良い
意識しておかないと、まずい情報をポロリと漏らしかねない 発信をホワイトリストで管理してくれる大学なんてあり得るのか? え、AWSから学内のSQLサーバーに接続する話
安全考えるとAWSのアドレスのリストでファイアウォール通過を許可しちゃったら無防備に等しいと思うんだけどな AWS触ったことないんだろうけど、AWSにはElastic IPというのがあって、ユニークで不変なIPアドレスを取得できるんだよ >>342
AWSからなら連携できる、ならば固定アドレスでリスト作っている訳ではない、
AWSで割り当てられる固定アドレスリストもしくは逆引きしてAWSであるアドレスを許可しているものと想定 固定アドレスのホワイトリストだったら、自分の保有しているアドレスを申請すれば良いことになり、AWSならという前提が意味を持たない SSHフォワーディングとかVPNで認証かましてファイアウォール通過させるってのは一般的じゃないのかな? ああなるほど、言いたいことを理解した
まあ暗に特定のAWSアカウント(or VPC)との間の通信が許可されていると考えるのが自然だろうし、
>>338の書き振りからすると彼はそのアカウントを弄れるんじゃないかな >>346
なるほど、認証とか済ませてある特定のVPCをAWSと呼んでるって考えた方が妥当かー >>339
ご指摘ありがとうございます
気をつけます
>>346
研究室で認可済みのアカウントがあるそうです
>>341
SQLサーバーの場所は学内ではなくVPC?側にする(これから私が作る)ので大丈夫なのだと思います アホ過ぎてスレを混乱させたようで申し訳ないです
_| ̄|○ 複数の戻り値を定義できる関数(?)を持っている言語ってありますか? RubyもPythonも、
静的言語でもRustやgoといった最近の言語ならできるやつはある 配列やリストを返せば何でもいいと思います!
最近はtupleと言う便利なのを扱える言語もたくさんあります >>350
C ならば構造体の中にいくらでも変数を積み込んで構造体リターンでなんでもできます
構造体が値渡し、値返しできるのは K&R2 の妥協ポイント、私に言わせると堕落ポイントだと思っています var (x, y) = func()
みたいなことを言ってるならそこそこモダンな言語ならみんな使えるんじゃないかな
Kotlin、C#、ES6あたりもいけるね
分割代入とかアンパッキングとかで検索 AWS の3階層システム(Web, AP, DB 各サーバー)では、
公開してるのは、ELB(Elastic Load Balancing)ロードバランサー。
ELBが複数のWordPress(WP)などへ分散させる
WPが、プライベート・サブネットのMySQL のマスター・レプリカへアクセスするので、
直接、DBへアクセスできない
そんなに、プログラミングに詳しい教授と言えば、猫の人がいるけど?w 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とメールの認証キーを内部で照合すれば、セッション固定攻撃と組み合わせない限りは安全なのでは? ■ このスレッドは過去ログ倉庫に格納されています