[解決済み] Crisis/AbuseサイトにおけるPanic Buttonの最速の出口戦略?[クローズド]
質問
私は、ある女性虐待のリソースセンターのウェブサイトを作成しています。このようなセンターの多くには、センターが「パニック・ボタン」と呼んでいるものがあります。基本的なものの例として、次のようなものがあります。 ここに で、各ページの上部にある緑色のバーです。
このリンクやボタンのアイデアは、女性が助けを求めてこのウェブサイトを見ているときに、加害者や知りたくもない人が部屋に入ってきたとしたら、すぐに逃げられるようにするためのものです。リンクは、ブラウザ ウィンドウを閉じるよりもはるかに速く、不審に思われることがあります。
私が見た問題点は、これを行うほとんどのボタンが、単にグーグルかそのようなものに送られることです。私はこのようなことをするつもりです。
<a href="http://www.msn.com/#news" rel="noreferrer">LEAVE WEBSITE NOW!</a>
または
<a href='data:text/html;charset=utf-8, <html><meta http-equiv="refresh" content="0;URL='http://www.msn.com/#news/'"></html>'>LEAVE WEBSITE NOW!</a>
このようなリンクは、いくつかの実際のコンテンツにスクロールします。空白のGoogle検索ではありませんが、怪しいと思われるような特殊なものでもありません。
参照元をブロックすることが良いことは分かっていますが、その解決策でも、ブラウザの戻るボタンを押せば、捕まることがあります。この問題に対して、私はこのように何かをすることができると思いました。
HTML
<a href="javascript:goNewWin()" rel="noreferrer">LEAVE WEBSITE NOW!</A>
JavaScript
function goNewWin() {
window.open("backbuttonnewpage.html",'TheNewpop','toolbar=1,location=1,directories=1,status=1,menubar=1,scrollbars=1,resizable=1');
self.close()
}
これで命が危険にさらされているので、できるだけ完全な解決策に近いものが必要だと思い投稿します。あなたならどうしますか?
3-26-14を更新しました。
私は私が働いているリソースセンターでここに投稿された教育のアイデアのいくつかを実行し、ここで彼らの答えだった。 "それはあっても私たちのウェブサイト上で来るために私たちのユーザーのための非常に勇気が必要です。彼らは、おそらく生命を脅かす状況から抜け出すために、迅速かつ簡単なリソースを探しているときに来る。そのため、安全な閲覧方法を学ぶ時間的・精神的余裕がないのです。パニックボタンのアイデアを提示すると、適切に実行された場合、私たちが扱うほとんどの被害者が常に求めるリソースであるように思われます。
ここで多くのアイデアを読んだ後、完全なソリューションは、左側の一定の位置に浮かぶ大きなボタンであるように思われます。ページをロードすると、バックグラウンドで別のサイトをロードし (おそらく ajax 呼び出し)、ボタンをクリックすると、オーバーレイ フレームが削除されます。これは、クリックされたときのロード時間がないことを意味します。ブラウザの戻るボタンを押さないようにするには、ブラウザにキャッシュしないように指示する必要があるようです。
replaceState
を使用して、このサイトを表示する戻るボタンを無効にすることができます。
これはまだ非常に技術的な質問です。議論は非常に役に立ちますが、私はまだ、実用的な技術的ソリューションを必要としています。どなたか、これらのアイデアをまとめて機能的なものにすることができると思いますか? 私はすぐにでもそれに取り組み、何か思いついたら投稿するつもりです。ありがとうございました。
どのように解決するのですか?
(最終編集
OK、私はすべてのコメントを読みました、そして、これは私が最良の解決策だと思うものですが、ALL-LOCAL ALTERNATIVE も考えました。私はさらなる改善/議論にオープンです。
var panic= function(){
document.body.innerHTML = '';
//this clears the current html in the body
//making it look like the page is loading
if(...){ //check if replaceState is supported so no error is thrown
var title="Decoy Article Title",
url="/decoypage"; //another endpoint on your server that gives the decoy website
window.history.replaceState("", title , url); //replace current history entry
}
//should be pretty fast up to this point
window.location.replace("http://www.google.com"); //load the google page or my alternative.
}
私のAWSインスタンスに54.186.79.95の例を置きました そのページに行き、ボタンをクリックし、別のページに行き、そして戻るを押すと、あなたは今54.186.79.95/decoywebsiteにおり、あなたが54.186.79.95/にいるという記録がない、もしキャッシュが無効ならあなたのサーバーは "./decoywebsite"' のリクエストをみておとりのページを送信するでしょう。残念ながら、ドメイン全体を変更することはできないので、怪しくないドメインであることが必要でしょう。
ページの内容を消したいのであれば、一番良い方法は
document.body.innerHTML='';
. 技術的にはまだページ上にいますが、すべてのコンテンツが消えます。
次のステップは、ブラウザの履歴を修正することです。
window.history.replaceState
(
ドキュメントへのリンク
) は、ページの再読み込みやサーバーへのリクエストを行わずに履歴を変更できる HTML5 の機能です。かなり高速ですが、モダンブラウザでのみ動作します。ユーザーがパニックボタンをクリックすると、履歴の現在のページを偽の url に置き換えます。
もし悪用されたユーザーがクリックを戻した場合、あなたのサーバー (PHP、Python、その他) はあなたの偽のURLでリクエストを受け取ります。ですから、あなたのサーバーに別のエンドポイントを持っている必要があります(エンドポイントについて理解していない場合は教えてください)。悪用されたときに疑われないように、元のウェブサイトと同じようなルック&フィールで、良質の記事、レシピ、天気予報などを作ってください。また、ブラウザのキャッシュがないことを確認するために
<META HTTP-EQUIV="CACHE-CONTROL" CONTENT="NO-CACHE">
タグを使用します。
補足説明
- 理想的には、ウェブサイト全体 (もちろんおとり記事を除く) を SPA (Single Page Application) にして、ブラウザ履歴の記録を 1 つだけ作成し、その 1 つだけを変更できるようにすることです。
- 結局のところ、100%誤作動しないパニックボタンは作れないと思うし、それを回避する方法はあるはずです。セキュリティと利便性を両立させたものを探せばいいんです。
別の方法: ローカルで犯罪につながる情報を変更し、ブラウザーの履歴を変更する。
私はまた、もし を読み込む代わりに を読み込むのがベストではないのであれば、実際に 無実の情報でローカルにサイトを変換する . これは、Googleをロードするよりも少ない不審に見える(誰もがそれを行う)、あなたはページを再読み込みせずに、すべてのローカルでそれを行うことができます。
ユーザーがパニック ボタンをクリックすると、高速な (そしてクロス ブラウザに準拠した) DOM 操作を行い、ウェブサイト上の犯罪につながる情報を変更し、無害に見せます (テキストを変更するだけかもしれませんが、これは高速でなければなりません)。この方法では、すべてローカルで行われるため、今日の大半のブラウザーでは、ほぼ瞬時に完了します。スクリプトはすでに読み込まれ、準備が整っているはずなので、リロードやサーバーについて心配する必要はない。同じルック&フィールを維持すれば、ユーザーがウェブサイトの別のページに移動したように見えます。ウェブサイトの見た目から、それが危機的なウェブサイトであることがあまりに明白にならないようにすることです。もちろん、元のコンテンツにナビゲートして戻れないようにするのです。また、パニックボタンには、ユーザーがパニックにならないように、どのような戦略なのかを明確にします。
私なら、やはり先ほどの例のように、ブラウザの履歴を変更し、おとりページのコピーをホストする別のドメインを購入するようにします。ドメイン名が疑わしい場合だけでなく、悪用したユーザーが更新を押したり、履歴を遡ったりした場合に備えてです。過去の履歴ではなく、現在のエントリーを修正するだけなので、ウェブサイト全体をSPAにする必要があります。もちろん、これはまだ HTML5 ブラウザでしか動作しませんが、エラーがスローされず、スクリプトの他の部分が古いブラウザでまだ動作することを確認します。
これに対する弱点はありますか?置き換えるべき良いコンテンツは何でしょうか?
関連
-
[解決済み] フォーム送信のようなJavaScriptのポストリクエスト
-
[解決済み] JavaScriptで配列を複製する最速の方法 - スライス vs. 'for'ループ
-
[解決済み] MIME-typeが原因でスタイルシートが読み込まれない
-
[解決済み】ChromeでJavaScriptの関数定義を検索する
-
[解決済み] ChromeでHTMLからGoogle翻訳を無効にする方法
-
[解決済み] Javascriptによるタッチスクリーンデバイスの検出
-
[解決済み] Chromeの拡張機能開発にWebStormを使用するにはどうすればよいですか?
-
[解決済み] javascriptで文字列から関数を作成する方法はありますか?
-
[解決済み] Javascript の parseInt() で先頭のゼロを削除する。
-
[解決済み] V8 Javascript エンジンのスタンドアロン実行
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み] AngularJSのエラーです。Cross Origin リクエストはプロトコルスキーム http, data, chrome-extension, https に対してのみサポートされています。
-
[解決済み] Javascriptによるタッチスクリーンデバイスの検出
-
[解決済み] jqueryでdivの要素がオーバーフローしていないかチェックする
-
[解決済み] Angularjs - 現在の日付を表示する
-
[解決済み] 文字列のn番目の出現箇所を取得するには?
-
[解決済み] なぜ "use strict "はパフォーマンスを10倍向上させるのか?
-
[解決済み] bootstrap のポップオーバーがすべての要素の上に表示されない
-
[解決済み] コールバック地獄とは何か、RXはそれをどのように、そしてなぜ解決するのか?
-
[解決済み] Javascript の parseInt() で先頭のゼロを削除する。
-
[解決済み] JavaScriptデータフォーマット/プリティプリンタ