- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Get Direct Link
- Report Inappropriate Content
JSL (ODBC 接続文字列) でユーザーのパスワード情報を処理する方法
クエリが構築されると、テーブル スクリプトはユーザー ID を保存します。
パスワードが要求されますが、JSL の接続文字列に直接コーディングすることもできます。
JSL でそのような状況に対処するための最良のオプションは何ですか?
JMP ファイルは共有できますが、更新は初回実行時に特定のユーザーとパスワードを要求する必要があります。
この投稿のオリジナルは 、English (US) で書かれており、ユーザビリティ向上のため自動翻訳機能を使用して表示しています。コメントを投稿すると、オリジナルの言語(English (US))やご指定の言語 でも表示されます。
Accepted Solutions
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Get Direct Link
- Report Inappropriate Content
Re: JSL でユーザーのパスワード情報を処理する方法 ( ODBC 接続文字列 )
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Get Direct Link
- Report Inappropriate Content
Re: JSL でユーザーのパスワード情報を処理する方法 ( ODBC 接続文字列 )
このディスカバリー サミットの講演では、暗号化された資格情報を使用するアプローチの概要を説明します。
「パスワードを隠す」セクションを探します。
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Get Direct Link
- Report Inappropriate Content
Re: JSL でユーザーのパスワード情報を処理する方法 ( ODBC 接続文字列 )
おそらく、パスワードとユーザー ID をユーザーのドキュメント フォルダー内の別のファイルに入れるのが好きです。 このようなもの:
資格情報.jsl
{"fred","1234"}
必要に応じて暗号化できますが、犬に見られないようにすることを除いて、それはほとんど意味がありません...
アプリから、
{username,password} = include("$documents/credentials.jsl");
... use the credentials ...
username = .; password = .; // clear the variables when done with them
include 関数は、ファイル内で最後に実行されたステートメントの結果を返します。これにより、2 要素リストが作成されます。
これは主に、自分の資格情報をソース管理システムにチェックインしていないことを確認するために行います。 ファイルはプロジェクト ディレクトリの外にあるため、誤って取得されることはありません。 私のコンピューターをハッキングする人が JMP を持っていないことを願って、私はそれを暗号化します。 ファイル名に少しの情報を追加することをお勧めします...それを必要とするアプリ、資格情報が適用されるサービス。
この投稿のオリジナルは 、English (US) で書かれており、ユーザビリティ向上のため自動翻訳機能を使用して表示しています。コメントを投稿すると、オリジナルの言語(English (US))やご指定の言語 でも表示されます。
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Get Direct Link
- Report Inappropriate Content
Re: JSL でユーザーのパスワード情報を処理する方法 ( ODBC 接続文字列 )
ファイルを暗号化する方が、この情報をプレーン テキストとして保持するよりも優れていると思います。
非常に単純な暗号化/復号化ステップを含む完全な答えは何ですか?
この投稿のオリジナルは 、English (US) で書かれており、ユーザビリティ向上のため自動翻訳機能を使用して表示しています。コメントを投稿すると、オリジナルの言語(English (US))やご指定の言語 でも表示されます。
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Get Direct Link
- Report Inappropriate Content
Re: JSL でユーザーのパスワード情報を処理する方法 ( ODBC 接続文字列 )
上記の私のコメントを参照してください。これは安全ではありません。 しかし、攻撃者の進路に小さなスピード バンプを設ける方法を次に示します。
このファイルを encrypt() 関数で暗号化してから、暗号化されたファイルを実行します。
// Pre-encrypt this using edit->encrypt script. There
// is no need to use a run password, and no reason to
// make a complicated edit password. "a" is good enough.
//
// Caution: this is not secure. No password is needed to
// view this data, though JMP is required to decrypt it.
// If you need a decrypt password+prompt, you'll need to
// manually go through the GUI for encrypting scripts.
// https://community.jmp.com/t5/Discussions/How-to-handle-user-password-information-in-JSL-ODBC-connection/m-p/627942#M82631
encrypt = Function( {name, pass}, {x},
x = Expr( 1 + 1 ); // throw an error if not working
// https://community.jmp.com/t5/Discussions/How-to-check-if-the-running-script-is-encrypted/m-p/624766#M82350
If( Char( Name Expr( x ) ) == "1 + 1",
Throw( "the encrypt function needs to be encrypted to work correctly." )
);
// strings generally stay unencrypted. expressions
// that are not simple strings or numbers try to stay
// encrypted. The concatenation operator is enough to
// keep the expression's strings encrypted.
Char( Eval Expr( {Expr( name ) || "", Expr( pass ) || ""} ) ); // return value
);
次に、これを実行して動作を確認します
// use the encrypted encrypt function to make an encrypted list
name = "fred";
pass = "1234";
crypt = encrypt( name, pass );
If( length(crypt) < 500 + Length( pass ) + Length( name ),
Throw( "not encrypted. Did you execute the *encrypted* file containing the encrypt function?" )
);
file = Save Text File( "$temp/credentials.jsl", crypt );
name = .;
pass = .;
///////////////////////////////////////////////////
{name, pass} = Eval List( Parse( Load Text File( file ) ) );
write("\!nsaved file contains\!n",Load Text File( file ),"\!n\!ndecrypted is");
show(name,pass);
保存されたファイルに含まれる
{JSL Encrypted("//-e12.1\!r\!n0,\!r\!n208,4193eJwNytmBhSAMAMB+tgWCCRBUkMuLgP0X8na+B3NI2evLjsG330/RUttTTEpOYhEyJ7JlBa2j1uAnpks3G3wTgpF7tJ8jqYrL\!r\! nPvBetVXPxNjKIWh06B9i+P/zfrd+bo6IP7eUOA3ksSsGoaGA1x0ovXovyGmy481u4wqIGYKnEhvuG6XAE4Qk19cmunKo32uGJkuTv\!r\!nB +khNtw=\!r\!n,0,"), JSL暗号化("//-e12.1\!r\!n0,\!r\!n208,4193eJwNzIkBxBAQAMB+rgWE9R1hQ/z0X8jdFDAcfUTDilxLV+PeyWbK7YEYHKE3A1bfMa7gUzjO2CxkyPwsVDP xS0TN9WNptpRC\!r\ !nLxnShipDYKmeKzWIoutSF6XX/fjReuqKrYKwJ9yptTwR2DfaI2j/AlFVHd/bP3Mqa0cFcuV1KCuTGp9XmOmvrXe9+Dai8GNZN+Hz\!r\!nAxwZN40=\!r\!n,0,")}
復号化された
name = "フレッド";
パス = "1234";
JMP には、スクリプトをプログラムで暗号化する機能は含まれておらず、インタラクティブな GUI のみが含まれています。 この回避策では、実行パスワードまたは編集パスワードを指定できません。 実行パスワードはなく (誰でも実行できます)、編集パスワードは不明です。 別のソリューションを好むかもしれません{"フレッド","1234"}編集ウィンドウで、保存する前にユーザーが手動で暗号化 (または暗号化しない) できるようにします。 その後、ユーザーは、実行パスワードのプロンプトが必要かどうかを決定できます。これは、もう少し安全です。
この投稿のオリジナルは 、English (US) で書かれており、ユーザビリティ向上のため自動翻訳機能を使用して表示しています。コメントを投稿すると、オリジナルの言語(English (US))やご指定の言語 でも表示されます。
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Get Direct Link
- Report Inappropriate Content
Re: JSL でユーザーのパスワード情報を処理する方法 ( ODBC 接続文字列 )
この投稿のオリジナルは 、English (US) で書かれており、ユーザビリティ向上のため自動翻訳機能を使用して表示しています。コメントを投稿すると、オリジナルの言語(English (US))やご指定の言語 でも表示されます。
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Get Direct Link
- Report Inappropriate Content
Re: JSL でユーザーのパスワード情報を処理する方法 ( ODBC 接続文字列 )
このディスカバリー サミットの講演では、暗号化された資格情報を使用するアプローチの概要を説明します。
「パスワードを隠す」セクションを探します。
この投稿のオリジナルは 、English (US) で書かれており、ユーザビリティ向上のため自動翻訳機能を使用して表示しています。コメントを投稿すると、オリジナルの言語(English (US))やご指定の言語 でも表示されます。
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Get Direct Link
- Report Inappropriate Content
Re: JSL でユーザーのパスワード情報を処理する方法 ( ODBC 接続文字列 )
これをデータベースの1つとして受け入れたのがOracleでした。 詳細なチュートリアルをありがとう。
この投稿のオリジナルは 、English (US) で書かれており、ユーザビリティ向上のため自動翻訳機能を使用して表示しています。コメントを投稿すると、オリジナルの言語(English (US))やご指定の言語 でも表示されます。
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Get Direct Link
- Report Inappropriate Content
Re: JSL でのユーザー パスワード情報の処理方法 (ODBC 接続文字列)
この投稿のオリジナルは 、English (US) で書かれており、ユーザビリティ向上のため自動翻訳機能を使用して表示しています。コメントを投稿すると、オリジナルの言語(English (US))やご指定の言語 でも表示されます。
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Get Direct Link
- Report Inappropriate Content
Re: JSL でのユーザー パスワード情報の処理方法 (ODBC 接続文字列)
データベース接続を開くために実行できる利用可能な JSL コードがある場合、このコードを持つすべてのユーザー (暗号化されているかどうかに関係なく) がデータベースにアクセスできます。
したがって、設定することが不可欠です実行パスワードユーザーが許可なくスニペットを使用できないようにするには?
一方、実行パスワードを使用すると、コードを自動的に使用するのが非常に不快になります。
この投稿のオリジナルは 、English (US) で書かれており、ユーザビリティ向上のため自動翻訳機能を使用して表示しています。コメントを投稿すると、オリジナルの言語(English (US))やご指定の言語 でも表示されます。
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Get Direct Link
- Report Inappropriate Content
Re: JSL でのユーザー パスワード情報の処理方法 (ODBC 接続文字列)
誰もが使用すべきではないそのようなコードは共有しないでください(実行パスワードを設定したくない場合)。 特定のユーザーを作成することも役立つ場合があります (少なくとも、そのユーザーのパスワードを簡単に変更したり無効にしたりできます)。IT 部門を参加させて、誰がどのクエリを何を実行しているかを確認し、それに応じてアクションを実行できるようにします。
また、資格情報マネージャー (Windows の場合) を使用して、次のようなパスワードを管理することもできます。 @ih提案しました(したがって、それらをjslファイルに保存する必要はありません)。 JMP で認証情報マネージャーを (まだ) 使用したことはありませんが、RPA (ロボティック プロセス オートメーション) を構築するときに使用したことがあり、うまく機能しました。
この投稿のオリジナルは 、English (US) で書かれており、ユーザビリティ向上のため自動翻訳機能を使用して表示しています。コメントを投稿すると、オリジナルの言語(English (US))やご指定の言語 でも表示されます。