我注意到在查看我的Rails應用程序的源代碼時,很多信息都是公開的,不應該是 - 特別是包含我的GA帳號的Google Analytics腳本以及我的表單的真實性標記。 有沒有關於在源代碼中隱藏這種代碼的指導原則?如何隱藏Rails應用程序中的源代碼片段?
回答
您的Google Analytics(分析)ID和真實性標記都需要可供瀏覽器執行。他們不需要隱藏。讓用戶看到它們沒有任何安全風險。
如果通過「查看源代碼」,你的意思是從服務器返回的HTML,那麼沒有。有些服務和產品會對您的頁面進行編碼並使其難以辨認,但這絕不是不可能的,因爲您的瀏覽器最終必須這樣做才能呈現頁面。大多數這些頁面加密器(有時稱爲)會使您的網站無法通過搜索引擎,因爲它們在索引頁面之前不會運行JavaScript。
看看其他網站,你會發現將這些東西放在一起是相當普遍的做法,因爲掩蓋或隱藏它的時間和精力是浪費時間。只要您不會無意中透露任何敏感信息,例如您的Amazon S3帳戶密鑰或用於加密會話的祕密(這不太可能偶然發生),那麼您就會無所事事。儘管如此,想一想它。如果瀏覽器無法訪問您的Google Analytics帳號,Google腳本如何知道要跟蹤哪個帳號?
我不認爲在那裏有真實性標記是危險的。爲了查看該真實性標記,用戶必須登錄。該用戶是否具有該會話的真實性標記並不重要。它應該在用戶註銷時過期。
但是,如果你願意,可以從源代碼中隱藏這些東西(儘管如果你有Firebug或類似的工具它們仍然可用)。
對於您的GA腳本,您可以將其視爲資源。你的application.js(或其他包含的js文件)可以對控制器進行AJAX調用(請求頭必須接受javascript),你的控制器可以發送一個包含腳本的js.erb文件。這個js現在只在Firebug中可見,如果你看看對控制器的請求的響應。你不會在源代碼中看到它。
對於真實性標記,您可以做類似的事情。我在其中一個應用中創建了一個JavaScript表單構建器。這個表單構建器是一個通過AJAX調用再次獲取並以js.erb發送的資源。 js.erb文件具有FormBuilder構造函數。在該構造函數,有一個builder.form()函數做到這一點:
return $('<%= form_for @object do |f| %> <% end %>');
,將返回其包含的真實性令牌和所有其他的東西在Rails形式的jQuery對象。
如果您希望您的JS表單構建器做的不僅僅是吐出表單(例如,根據對象的屬性名稱(包含輸入,複選框和相應屬性的集合)爲構建器對象動態創建屬性)對我來說,我可以告訴你我是怎麼做到的:)
- 1. 如何隱藏xcode中的源代碼?
- 2. 如何使用PHP在Google代碼片段中隱藏日期?
- 3. 隱藏c#windows應用程序源代碼
- 4. 隱藏源代碼
- 5. ABAP代碼片段應用程序
- 6. 如何在sinatra/rails應用程序代碼段中引用?
- 7. WPF:在代碼隱藏中引用應用程序範圍內的資源
- 8. 如何隱藏代碼在VBA應用程序
- 9. 如何隱藏html源代碼?
- 10. 如何從代碼文檔中隱藏查看源代碼?
- 11. 隱藏桌面應用程序代碼的密碼
- 12. 隱藏庫源代碼
- 13. 如何隱藏我的應用程序?
- 14. 隱藏HTML源代碼中的iframe url
- 15. Scrapy源代碼中的隱藏內容
- 16. 如何編譯TCL/shell代碼(隱藏原來的源代碼)
- 17. 在ASP.NET應用程序中隱藏代碼
- 18. 如何在Silverlight中的WP7應用程序的代碼隱藏文件中設置背景圖片
- 19. 從碼頭隱藏Mac應用程序
- 20. UWP如何隱藏應用程序?
- 21. 如何隱藏應用程序名稱?
- 22. 在PHP中隱藏源代碼GTK
- 23. 在style.css中隱藏css源代碼
- 24. 你在哪裏放置CSS代碼的Rails應用程序的小片段?
- 25. 隱藏Android片段
- 26. 我可以在視圖中隱藏多行代碼片段嗎?
- 27. 如何從外包程序員隱藏Rails應用程序的一部分
- 28. 如何隱藏代碼塊
- 29. 如何從代碼隱藏
- 30. 如何使用sybase ase隱藏我的sql源代碼?
是啊?好吧,感覺很愚蠢,但謝謝。 – kateray 2010-10-27 17:43:47