2013-04-22 168 views
4

我已經看到了一些關於確保網站訪問來自QR碼掃描的問題,但他們似乎專注於分析目的(追蹤流量來自哪裏),而我的興趣是在安全/隱私。限制網站訪問QR掃描僅

我想設置一個網站,只有在掃描提供的QR碼時才能訪問。換句話說,我不希望QR碼擁有的URL能夠通過其他方式手動輸入/粘貼到站點訪問中。

我一直googling這個問題有點沒有運氣。我試圖通過引用網址或其他方式來考慮一種方法,通過實際掃描提供的QR碼來確保某個人到達該網站。編輯:解決方案也需要獨立於掃描儀(即我無法強制用戶下載和使用特定的QR掃描儀應用程序)和跨平臺(Android + iOS + WinMo + BlackBerry等)。

現在我把問題提交給你美妙的人。

+0

這是不可能的。您可以隨時複製網址並分享。 – str 2013-04-22 14:08:26

+0

你不需要參數。取而代之的是,讓設備的標題訪問網站,並確保它只來自可以掃描QR碼的設備:手機,平板電腦等。這基本上就像建立一個移動網站。不是傻瓜證明,但我不認爲有這樣做的傻瓜證明方式。 – 2013-04-22 14:10:09

+0

@Kacey:電腦與攝像頭,... – str 2013-04-22 14:11:21

回答

1

關於你能做的最好的事情是在你的QR碼中設置一個查詢字符串。喜歡的東西:

http://www.example.com/myapp 

可改爲類似:

http://www.example.com/myapp/?qrcode=1 

然後可以在PHP與處理:

if(!isset($_GET['qrcode'])) die(); 

的問題,這一點,當然,不過,任何擁有該URL的人都可以直接在其普通Web瀏覽器中直接導航到該URL。

但是這不是你可以預防的。

您還可以檢查是否$_SERVER['HTTP_USER_AGENT']聲稱是手機。這裏的主題是another question

+0

HTTP_REFERER能夠在這裏播放嗎?要檢查訪問者是否(在一定程度上可信度下)直接來自QR掃描儀應用程序或其他網站? – hannebaumsaway 2013-04-22 14:20:33

+0

@praguian'HTTP_REFERER'應該是空白的。所以你總是可以做'if(!empty($ _ SERVER ['HTTP_REFERER')))die();' – 2013-04-22 14:22:55

+0

正是我所指的@DannyBeckett。在你看來,這會是一個可行的解決方案嗎?這也是我可以研究自己的事情,但不管怎樣,有沒有合理/頻繁的情況下,即使用戶手動將URL粘貼到瀏覽器中,HTTP_REFERER也可能是空白的?也許在會議開始時呢?試圖想一想這種方法可能存在的漏洞。 – hannebaumsaway 2013-04-22 14:33:17

0

你可以添加參數,但最終QR碼只是一種編碼文本的方法,所以如果有人知道編碼是什麼的話,無論你編碼如何,都可以輸入瀏覽器。

2

我們公司也有同樣的東西。我們提供瞭如下鏈接:

zxing://scan/?ret=http%3A%2F%2Ffoo.com%2Fproducts%2F%7BCODE%7D%2Fdescription&SCAN_FORMATS=UPC_A,EAN_13 

其中{CODE}是在QRCode中返回的代碼。所以你可以做的就是創建一個類似於上面的url(更多信息請參閱鏈接)。然後在QRCode中加入一個加密數據,所以只有當這個URL被用戶點擊並且QR碼的數據是正確的。人們可以繼續訪問您的網站。這樣,如果qrcode被泄露,他們將不知道該網站。如果他們知道該網站,則代碼被加密。

如果用戶通過點擊您的網站掃描條碼。 zxing將會打開一個新的瀏覽器,其URL和{CODE}填充掃描後的代碼。

但是,人們確實需要從android或iphone的條碼掃描器。

更多信息:

+0

聽起來很有希望,儘管我不熟悉斑馬線,所以我必須深入研究你提供的研究。謝謝你的回覆,你清楚地理解我的問題! – hannebaumsaway 2013-04-22 14:19:26

+0

使用上面的鏈接製作一個href。下載掃描儀。做一個QRCode,工作不要。點擊鏈接掃描儀將打開並且用戶將被重定向到給定的頁面。這很簡單! 1重要的想法,你不能通過Javascript激活掃描儀。爲了安全起見,用戶必須手動點擊鏈接。 – Niels 2013-04-22 14:21:24

+1

這是否需要XZing安裝在用戶的設備上? – 2013-04-22 14:25:05

1

不能確保URL通過掃描QR碼來了,這是不可能的。 QR碼只是一種編碼文本的方法,一旦用戶知道文本,他們就可以隨心所欲地做任何事情。

但是,您可以限制QR碼的有效性,即使它被泄露也沒有用。如果可能的話,我會先用隨機種子按需生成QR碼,然後在短時間內過期。即使QR碼泄漏,這也會使它變得非常有用,但它很長時間不會有用。

0

如果您正在通過QR碼向任何網址發送郵件,則無論您使用何種身份發送郵件,都將無法看到,除非用戶通過QR掃描模式。因此,只需輸入網址,用戶將無法訪問網址的內容。