質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.47%
HTTP

HTTP(Hypertext Transfer Protocol)とはweb上でHTML等のコンテンツを交換するために使われるアプリケーション層の通信プロトコルです。

C#

C#はマルチパラダイムプログラミング言語の1つで、命令形・宣言型・関数型・ジェネリック型・コンポーネント指向・オブジェクティブ指向のプログラミング開発すべてに対応しています。

URL

URL(ユニフォームリソースロケータ)とは、インターネット上のリソース(Webページや電子メールの宛先等)を特定するための形式的な記号の並びの事を言う。

JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

Q&A

解決済

2回答

1172閲覧

c#やpythonなどでリンクを開いた後にjsに値を渡したい

gochuumonha

総合スコア74

HTTP

HTTP(Hypertext Transfer Protocol)とはweb上でHTML等のコンテンツを交換するために使われるアプリケーション層の通信プロトコルです。

C#

C#はマルチパラダイムプログラミング言語の1つで、命令形・宣言型・関数型・ジェネリック型・コンポーネント指向・オブジェクティブ指向のプログラミング開発すべてに対応しています。

URL

URL(ユニフォームリソースロケータ)とは、インターネット上のリソース(Webページや電子メールの宛先等)を特定するための形式的な記号の並びの事を言う。

JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

0グッド

0クリップ

投稿2020/09/10 17:28

c#やpythonなどのローカル環境にあるプログラムを用いて、リンクを開いた後にそのウェブページのjs(もしくはinputタグの中やcookieでも)に値を渡したいと考えています。

まず考えたのはURLパラメータを使う方法です。しかし、この方法ではある値をURLに含んでしまうため、様々な場所にログとして残ってしまいます。ある値を流出させたくない場合には適さないと考えました。

次に考えたのは、リンクを開いたあとにSeleniumなどを使ってブラウザを操作して値を入力する方法です。しかしこの方法はChromeのバージョンに合ったドライバーをインストールしなければならないなど、手間がかかります。また、かなり強引に値を渡しているので、1機能としてソフトウェアに実装するのは難しいと思いました。

僕にはこのくらいの方法しか思いつかなかったのですが、何か他にいい方法はありませんでしょうか?

どうぞよろしくお願いいたします????

備考
環境としてはWindowsやOSXを想定してます。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

退会済みユーザー

退会済みユーザー

2020/09/11 00:11

> c#やpythonなどでリンクを開いた そもそもそこの意味が自分には分からないのですが。どういう操作をするのか具体的に書けませんか?
gochuumonha

2020/09/11 02:53

回答ありがとうございます。 例えばpython であれば、 import webbrowser url = "http://cartman0.hatenablog.com/" webbrowser.open(url) といった感じです。 ブラウザの新しいタブを開き、指定URLのサイトを表示することです。
退会済みユーザー

退会済みユーザー

2020/09/11 03:48

すみませんが python は分かりません。C# で言うと例えば WebBrowser コントロールに指定した url のページを表示した状態のことを言ってますか?
gochuumonha

2020/09/11 03:55

webbrowserコントロールではなく、ChromeやSafariで開くことを想定してます。 C#のコードで書けば System.Diagnostics.Process.Start("http://www.daccho-it.com/"); という感じだと思います。
退会済みユーザー

退会済みユーザー

2020/09/11 04:20

> ChromeやSafariで開くことを想定してます。 それですと普通にブラウザで表示した状態になるはずですが、そこから「jsに値を渡したい」はできないと思います。
Zuishin

2020/09/12 02:34

今思いつくのは次の三つくらいです。 - WebDriver のインストールを自動化する - ブックマークレットを使う - ブラウザにキーコードを送信してキーボード操作する
gochuumonha

2020/09/13 18:22

SurferOnWww様 ありがとうございます。 やはり難しいですか。。。
gochuumonha

2020/09/13 18:23

Zuishin様 ありがとうございます。 ブックマークレットやキーコードは知らなかったので、参考になります。
gochuumonha

2020/09/13 18:23

皆様ありがとうございました。 とても勉強になりました!
guest

回答2

0

次に考えたのは、リンクを開いたあとにSeleniumなどを使ってブラウザを操作して値を入力する方法です。しかしこの方法はChromeのバージョンに合ったドライバーをインストールしなければならないなど、手間がかかります。

組み込みChromiumの CefSharp というのがあります。(サイズはでかいです)

投稿2020/09/12 00:06

退会済みユーザー

退会済みユーザー

総合スコア0

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

gochuumonha

2020/09/13 18:20

なるほど、そういったものもあるのですね。 勉強になりました。 ありがとうございます。
guest

0

ベストアンサー

回答

QueryStringで値を暗号化して渡すとかどうですか。

補足

どんなに複雑な暗号化でも、最終的には復号キーが必要になるのでJSで復号するとキーがバレてしまう懸念はありますが。
なぜ流出させたくない値をJS(フロント)で扱うのかが気になります。

仮にUserIDを扱うが漏らしたくない というのであれば
UserIDと一対一に対応したtokenを作成し、JSはトークンで扱い、
サーバーでtokenとUserIDを変換しUserIDで処理というような実装をした方がいいかなと思いました。

投稿2020/09/10 17:48

honto

総合スコア34

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

gochuumonha

2020/09/10 17:56

回答ありがとうございます! jsに渡すという書き方が悪かったかもしれません。 目的としてはユーザーに配布したソフトウェアで作成されたデータをウェブサイトのinputタグの中などに入れ、その後postを用いてサーバーに保存することを想定してました。 なので、値はユーザーからは見えてもいいと言うことになります。
honto

2020/09/10 18:04

アプリから直接ポストしちゃダメなんですか?
gochuumonha

2020/09/11 02:55

それも考慮しております。 しかし、それだとブラウザとアプリの両方でユーザーにログインしてもらう必要があり、不便かなと考えて他の方法を探しております。 見つからなければ最終的にアプリからpostすると思います。
honto

2020/09/11 07:20

リンクを開く場合はログインしなくていいんですか???
honto

2020/09/11 07:22

状況がよくわからないけど、ワンクッション入力画面を挟みたいなら、入力画面にpostで渡すとか。
gochuumonha

2020/09/13 18:21

入力画面にPostで渡すといったことがイメージできていませんが、いろいろと参考になりました。 ありがとうございました。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.47%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問