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

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

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

WordPressは、PHPで開発されているオープンソースのブログソフトウェアです。データベース管理システムにはMySQLを用いています。フリーのブログソフトウェアの中では最も人気が高く、PHPとHTMLを使って簡単にテンプレートをカスタマイズすることができます。

パスワード

パスワードは主に情報にアクセスする際に扱われます。主に、アクセス可能なユーザーを限定する手段として使われます。

パラメータ

関数やプログラム実行時に与える設定値をパラメータと呼びます。

メール

メールは、コンピュータネットワークを利用し、 情報等を交換する手段のことです。

HTML

HTMLとは、ウェブ上の文書を記述・作成するためのマークアップ言語のことです。文章の中に記述することで、文書の論理構造などを設定することができます。ハイパーリンクを設定できるハイパーテキストであり、画像・リスト・表などのデータファイルをリンクする情報に結びつけて情報を整理します。現在あるネットワーク上のほとんどのウェブページはHTMLで作成されています。

Q&A

解決済

2回答

2159閲覧

HTMLメールに置いたURLリンクにパラメータを設定し、そのパラメータをWordPressのパスワードセキュリティ機能に直接用いる方法

JMS

総合スコア7

WordPress

WordPressは、PHPで開発されているオープンソースのブログソフトウェアです。データベース管理システムにはMySQLを用いています。フリーのブログソフトウェアの中では最も人気が高く、PHPとHTMLを使って簡単にテンプレートをカスタマイズすることができます。

パスワード

パスワードは主に情報にアクセスする際に扱われます。主に、アクセス可能なユーザーを限定する手段として使われます。

パラメータ

関数やプログラム実行時に与える設定値をパラメータと呼びます。

メール

メールは、コンピュータネットワークを利用し、 情報等を交換する手段のことです。

HTML

HTMLとは、ウェブ上の文書を記述・作成するためのマークアップ言語のことです。文章の中に記述することで、文書の論理構造などを設定することができます。ハイパーリンクを設定できるハイパーテキストであり、画像・リスト・表などのデータファイルをリンクする情報に結びつけて情報を整理します。現在あるネットワーク上のほとんどのウェブページはHTMLで作成されています。

0グッド

0クリップ

投稿2020/08/21 15:36

現在、メール配信システムを用いてHTMLメールを作成し、顧客に送付しています。
HTMLメールには、「ここをクリック」のようなURLリンクを入れており、そのとび先は弊社のウェブページとしています。
ただ、当該ページが「若干の機密性ある文書」であるため、URLを知っている人だったり検索でひっかからないようにするため、検索に引っかからないようにするためnoindex設定をしたりWordPress付属のパスワード認証機能を入れています。このため、ユーザーにはパスワードを入力して当該ページを見てもらう仕組みとしています。なお、パスワードはメールに記載しています。

しかし、最近分かったこととして、ユーザーがパスワードをコピーして、そのパスワードをクリック先のページに入力するというところで相当の離脱が発生しているため、ユーザーがHTMLメールをクリックしたらそのまま次のページまでそのパラメータをもっていくか、何等かの変換処理を行い、正しいパスワードをデフォルトで入力させた状態でそのページをみてもらいたいと思っています。ユーザーのために、既にパスワードを自動で入れてあげることで、ストレスなくそのまま「認証」ボタンをクリックすれば内容が見れる仕組みです。

できれば、ユーザーにパスワードを知られたくないので、パラメータに記載されたパスワードを何等かの形で変換し、変換後のパスワードを事前にwordpressのセキュリティ設定で設定しておいたパスワードになるようにした上で、パスワードを自動入力させたいと思っています。
HTMLメールは複数のユーザーに送っていますが、パスワードについては全員同じでよいと考えています。

しかし、どこをどう検索しても、これができる方法が見つかりません。以上から、以下の3つの質問をさせていただければとおもいます。

1.上記のようなことは、そもそもできないのでしょうか?もしこの辺りお判りの方がいらっしゃいましたら、教えていただけませんでしょうか?
2.たとえばURLに設定したパラメータを変換し、認証ページでデフォルトで入れるパスワードへ変換するような方法はあるのでしょうか?
3.これを考え続けていると、そのリンク先のウェブページのURLをとても複雑なものにして、その上で検索に引っかからないようにnoindex設定をすれば、それだけで良いのでは?とも思いはじめています。なぜなら、そのURLは私が送ったHTMLメールにしか記載しないので、そのメールを送った人しか分からないことになるからです。この考え方は正しいのでしょうか?

もしご存じの方がいらっしゃいましたら、上記のうち1つでも結構ですので、アドバイスいただけませんでしょうか。

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

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

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

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

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

guest

回答2

0

ベストアンサー

パスワードはメールに記載しています。

できれば、ユーザーにパスワードを知られたくないので

は、矛盾してないか。

しかし、どこをどう検索しても、これができる方法が見つかりません。

実行してネット上に公開している人間が居ない限り検索しても見つかるわけがない。考える努力も必要。

以下の3つの質問をさせていただければとおもいます。

1と2は同じ事ではないのか。
とりあえず可能。然程難しくもない。

3は、リンクを辿っても到達できないページならばそうだろうな。

追記

特定のURLのリファラ

特定のHTMLメールからしかアクセスできないページにするとそれはそれで解決するかな?

メール等のリンクじゃリファラは存在しないから無理。

とりあえず最初の話し。
変換とか考えるからややこしくなる。

例えばURLがこんな感じだったとする
http://example.com/test/?code=12345

カスタムフィールドのメタキーcode
12345
こんな感じの情報を事前に登録しておく。

これで以下のようなコードを書いておけばURLパラメータのcodeの値とカスタムフィールドの値が一致すればパスワードの入力欄に設定したパスワードを入力した状態になる。
パラメータ無しや異なるパラメータ付きURLではパスワード入力欄が出ない。

add_filter( 'the_password_form', function( $output ) { $post_id = get_the_ID(); $code = get_post_meta( $post_id, 'code', true ); $string = str_replace( 'code=', '', $_SERVER['QUERY_STRING'] ); if( $string === $code ) { $label = 'pwbox-' . ( empty( $post_id ) ? rand() : $post_id ); $output = '<form action="' . esc_url( site_url( 'wp-login.php?action=postpass', 'login_post' ) ) . '" class="post-password-form" method="post"> <p>' . __( 'This content is password protected. To view it please enter your password below:' ) . '</p> <p><label for="' . $label . '">' . __( 'Password:' ) . ' <input name="post_password" id="' . $label . '" type="password" size="20" value="'.get_post( $post_id )->post_password.'" /></label> <input type="submit" name="Submit" value="' . esc_attr_x( 'Enter', 'post password form' ) . '" /></p></form> '; } else { $output = '閲覧できません'; } return $output; } );

投稿2020/08/22 04:33

編集2020/08/22 13:46
退会済みユーザー

退会済みユーザー

総合スコア0

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

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

JMS

2020/08/22 13:13

有難うございました。 矛盾とありますが確かに一見そう見えるのですが、矛盾していないと考えています。 私の説明が悪かったかもしれません。 というのは、 1.メールに記載のパスワード 2.実際にLPでセキュリティ解除する際のパスワード があると思っており、1を2へ変換するシステムも入れたいなと思っていますので、私としてはユーザーに1は知られていいが2は知られたくないということになります。このため、2のパスワードがLP上で「●●●●●●●●」と表示され、それがコピー&ペースト等で本当の文字列が見えなければよいのではないかと考えています。なぜ2を知られたくないのか?というと、例えば故意に誰かがセキュリティがかかったLPのURLを張り付けたとしても、2のパスワードも併せて張り付けなければ、ログインができないようにできるからです。少しだけでもセキュリティレベルが上がるかな?と思ったことによります。 ただ、3についてご指摘のとおりであれば、そもそもパスワードはいらないということになりそうですね・・・。検索もかからず、どこからもリンクされていなければ、誰かが悪意をもってどこかにURLを貼り付けない限りある程度のセキュリティは保てているということになりますでしょうかね? また、こちら1と2の方法というのは例えばどのような仕組みを使うとできると理解すればよいのでしょうか?もしヒントでもいただけるようでしたら大変ありがたいです。
JMS

2020/08/22 13:35

また、少し考えていて思ったのですが、例えばhtaccessを用いて、特定のURLのリファラからしかアクセスできないページを作ることはできると思うのですが、そのように特定のHTMLメールからしかアクセスできないページにするとそれはそれで解決するかな?と思いました。そういった方法はご存じでしょうか?もしお判りになられましたら、ご教示いただけないかと思っております。
退会済みユーザー

退会済みユーザー

2020/08/22 13:54

> 例えば故意に誰かがセキュリティがかかったLPのURLを張り付けたとしても、 > 2のパスワードも併せて張り付けなければ、ログインができないようにできるからです。 > 少しだけでもセキュリティレベルが上がるかな?と思ったことによります。 この方法(コード)じゃこれは無理だな。 パスワードもソース見れば分かるし。
JMS

2020/08/22 14:38

確かにそうですね。というか、上記の追記、本当にありがとうございました!!! まさにこの方法を僕は探していまして、またやり方まで記載いただいて感動です!!! 明日やってみたいと思います。本当に感謝です。なんかできそうに思えてきました。 カスタムフィードもコードの追記も実は初めてなんですが、コードの追記はfunction.phpに追記すればよいのでしょうか?それとも固定ページ編集画面の本文の一番上に入れたりするのでしょうか?
JMS

2020/08/22 14:40

固定ページ編集画面の一番上に入れたら、そのまま表示されてしまいましたので、やはりfunction.phpですかね?でもそうするとすべてのページにこのコードが入ることになりませんでしょうか?その場合、すべてのページに<meta name="code" content="123456">を入れるということでしょうか?
JMS

2020/08/22 14:44

ごめんなさい。ページに入れる<meta name="code" content="123456">は、あくまでもpassの正解をページに埋め込んでおくということですね。よって、該当ページにだけ入れるということだと理解しました。でもそうすると、すべてのページが特定のパラメータをもってアクセスしたユーザーでないと表示されないことになりませんでしょうか?または、いま検索していましたら、特定のページにだけJavascriptを入れるプラグインがあるようでしたので、そういったプラグインを利用するイメージでしょうか?
退会済みユーザー

退会済みユーザー

2020/08/22 14:54

function.phpではなくfunctions.php functions.phpに追記 メタタグとか何の話しなのか分からん パスワード保護したページに正当なパラメータ付きURLでアクセスしたらパスワードがフォームに入力済ということだ
guest

0

上記のようなことは、そもそもできないのでしょうか?もしこの辺りお判りの方がいらっしゃいましたら、教えていただけませんでしょうか?

可能な方法はいくつか思いつきますが、WordPressだとなかなか難しいとは思います。

投稿2020/08/21 17:42

kyoya0819

総合スコア10429

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

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

JMS

2020/08/22 13:13

ありがとうございます。やはりWPだと難しいんですね。
kyoya0819

2020/08/22 13:24

プラグインを一から作れる時間・能力等があれば可能です。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.35%

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

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

質問する

関連した質問