2011-06-09 53 views
0

如何防止(未經授權)的人閱讀網站上的消息(例如,通過在瀏覽器緩存中查看文本/圖像)?**如何防止未經授權的瀏覽內容(php/js)

  • 這是一個公共網站(指:在這裏沒有登錄!)(!)

但是:

  • 的(祕密)消息只顯示n一定時間。

  • 消息可能如果passwort給出僅示出。

問題:

  • 在Opera例如頁面(=頁面內容/文)可以通過瀏覽器進行索引和搜索。

  • 一個想法是用消息創建一個圖像......但是:也可以從FireFox的緩存中檢索圖像 - 即使發送頭「無緩存」發送。

  • 另外:從單個字符重新創建消息圖像不工作(至少我這麼認爲的那一刻)。我嘗試了這種方法,但它使輸出速度很慢(寫下這個:我注意到我不需要在運行時創建圖像,但可以預先創建圖像(單個字母),並且不是通過真實的方式顯示/但在HTML中僞隨機名稱)

  • 我也有想法輸出一個編碼的消息(ROT13)(在HTML中),但使用JS .onload立即解碼消息。問題:如果此代碼位於HTML中,則可以稍後從緩存中恢復。至少如果有人通過(歌劇)緩存進行搜索,該人可能不會考慮輸入編碼的搜索詞。

編程語言是PHP。

+0

如果您使用的是PHP,如果它不應該顯示,甚至不會將它寫入客戶端。否則,如果你這樣做,我可以找到它。 – Robert 2011-06-09 17:59:34

+2

「未經授權」與「無登錄」和「公共」一起,這種瘋狂的謊言。緩存取決於瀏覽器,你只能提示。我個人並不認爲這可以通過任何可靠的方式來完成,任何解決方案都可能是易碎的。混淆可以完成,但本質上是有缺陷的。 – Wrikken 2011-06-09 18:02:30

+0

+1「That Way,Madness Lies」 – 2011-06-09 18:04:50

回答

1

你不能。如果有人拿這個截圖怎麼辦?

+0

我認爲這可能是他的目標有點像字面意思。顯然,如果它顯示在屏幕上,某人可以看屏幕並看到它,或者截取屏幕截圖,或者閱讀某人的肩膀。 – 2011-06-09 18:03:03

1

您可以在祕密代碼添加到頁面的JavaScript,頁面加載後。您希望通過AJAX檢索密碼,然後將其寫入頁面 - 這樣,代碼就不會被緩存在源代碼的HTML部分中,並且不會位於頁面源代碼中的JavaScript中。

內容管道與AJAX是非常短暫的,它不會被緩存或以其他方式記錄。

因爲我不知道你的HTML或什麼東西(如果有的話),你可能會使用JavaScript框架,我不能給你一個代碼示例,但你應該能夠與概念的工作。

1

現實,如果它被髮送到客戶端,並顯示在屏幕上,那麼你不能阻止保存或存儲在客戶端計算機上的消息。無論你如何防止這種保存,仍然可以通過簡單的屏幕截圖繞過。

如果您不關心消息的目標是保存所述消息,那麼我認爲您的最佳做法是使用Flash與Flash進行調用以獲取消息並顯示消息。另一個選擇可能是使用javascript對服務器執行某種形式的調用(AJAX),然後將該消息發送回來,並更改DOM以顯示消息。我不認爲這會被緩存,但除非你使用SSL,否則它可能被中間代理存儲。

+0

爲什麼使用Flash來做AJAX,當你只能從原生的JavaScript AJAX?對機制有正確的想法,但加入Flash來實現它是過度的。 – 2011-06-09 18:06:01

+1

我認爲這裏使用Flash的目的是爲了防止用戶選擇和複製文本。我不確定,但我認爲他還暗示Flash比Ajax對緩存有更大程度的控制。 – 2011-06-09 18:37:15

+0

這兩種方法都是合理的,但如果您不想將任何調用回服務器,則可能會優先使用閃存。 Flash可以進行密碼驗證並顯示消息。但是,如果技術熟練並且如此傾向,則仍然可以通過檢查緩存的閃存文件來檢索該消息。正如菲尼克斯所說,它爲保存最終信息增加了另一層難度。與ajax相比,我認爲這不會增加對緩存的進一步控制 - 儘管我對代理服務器的評論就是這樣。 – dunos 2011-06-09 19:29:17