2017-07-29 11 views
0

秘匿URL(PHPによって生成されたURL)

私はPHPで構成されているURLへのリダイレクトを行うJSコードの部分を有し、そしてそのリダイレクトは、確認ダイアログでユーザーがボタンを押したときにのみ実行されます。次のように

コードは、次のとおりです。

function one() { 
    window.location.replace("<?php 

if($new_redir == "1") { 

echo "$new_second_redirect_URL/?token=$hash"; 

} 

else { 

echo "$second_redirect_URL/?token=$hash"; 

} 

?>"); 
} 

それは完全に正常に動作します。私がしたいのは、ユーザーがページを開いたときにソースコードに表示されるURLを隠すことです。

これを行うにはどうすればよいでしょうか?

+0

あなたはブラウザに行き知っているだろうかURLを隠した場合は?あなたが望むことを実行する効果的な方法はありませんが、別のアプローチが必要です。 –

+0

この質問を確認するhttps://stackoverflow.com/questions/42712426/hide-url-from-atag-on-view-page-source – jack

+0

私が主にやりたいことは、自動化されたボットがそのURLを直接取得できないことを確認することですページのソースコードをスキャンします。正当な人間の訪問者は私の問題ではありません。私の知る限り、ボットはjavascriptを解釈できないので、ページのソースコードをスキャンするだけでURLが難読化されているかどうか、さらには隠されていることを確認したいと考えています。 – Mirian

答えて

0

あなたは正直言ってこれに多すぎると思っています。

確認画面を避けてソースからURLを取得したい場合は、実際にはできません。

実際には、確認の際にAJAXリクエストを実行し、CSRFトークンベースのURLをレスポンスから取得して使用することが最善の方法ですが、それでも過度の攻撃になる可能性があります。

また、実際の<form></form>フォームにいくつかの非表示フィールド(CSRFトークンなど)を作成し、ポスト検証onclickを実行することもできます。それが成功すれば、それらをリダイレクトしてください。

UPDATE:、

あなたも何ができるか
var csrftoken='XJIWHEOU324uipHFOFUHR'; 
var url="http://url.com/page.php?token="; 
url=url+csrftoken; 

、実際に私たちのようなものです:

使用robots.txtのは、ほとんどのボットを停止するボットが JSでQSを構築するようなものを停止するにはあなたのユースケースでは、あまりにも多すぎる可能性があります。 1ページの読み込みをすべてDBに記録し、確認後に初めてページを訪問したかどうかを確認します。

AJAXコール(jQueryの例):

$.post("url_to_backend_page_to_get_url", {hasSubmittedForm:"true"}, function(data) { 
window.location.href = data; 
}); 
+0

私が主にやりたいことは、自動化されたボットがページのソースコードをスキャンすることでそのURLを直接取得できないことを確認することです。正当な人間の訪問者は私の問題ではありません。 – Mirian

+0

robots.txtを使用して起動します。しかし、はい、あなたがCSRFトークンを使用すると、かなり詰まってしまいます。その意味で、実際にできることは、JSを使ってURLを一緒に追加することです。 'var csrftoken = 'XJIWHEOU324uipHFOFUHR'; var url = "http://url.com/page.php?token="; url = url + csrftoken; ''。まっすぐ離れているボットはJSをパースすることはほとんどできない。できないことは、試しても意味がない。 – DomLip

+0

AJAXコールについてはどうすればよいですか?それも私が心に持っていたことです... – Mirian

関連する問題