2012-08-27 23 views
7

Tôi đang làm việc trên một ứng dụng dành cho điện thoại cho Android/iOS.
Nếu tôi hiểu chính xác, nếu ai đó mở gói ứng dụng dành cho điện thoại, anh ấy có thể chỉ cần sao chép html/js/css vào một ứng dụng dành riêng cho điện thoại. Đó là điều tôi muốn gây khó khăn hơn.

Ứng dụng của tôi hoạt động mà không cần kết nối internet đang hoạt động và tôi muốn giữ nó theo cách đó.
Giải pháp tốt nhất tôi có thể nghĩ là lưu trữ (các phần của) (40) tệp HTML trong các biến Java/ObjectiveC nguyên gốc và truy xuất chúng bằng cách sử dụng javascript và một plugin Phonegap tùy chỉnh. Bằng cách này, HTML cũng sẽ được mã hóa khi tạo ứng dụng.

Đây có phải là giải pháp khả thi hoặc lãng phí thời gian không?phonegap copy-protection

Trả lời

4

Nếu một cái gì đó có giá trị đủ để có giá trị bảo vệ quyền truy cập của mọi người (ví dụ: chi tiết xác thực), sau đó đặt nó vào một số mã được biên dịch mà chúng có không đủ an toàn.

Nếu không, bạn có gì trong HTML, Javascript và CSS có giá trị như vậy? Nó không thể là mã chính nó, bởi vì nếu họ không thể sao chép nó, họ chỉ có thể nhìn vào nó, đi "oh, đó là một ý tưởng hay" và sao chép ý tưởng mà không cần nhìn vào mã. Những ý tưởng tốt có giá trị hơn các dòng mã, và bạn không thể giấu chúng, theo cách này. Trong trường hợp này, bạn đã làm cho cuộc sống khó khăn hơn cho bạn đến một mức độ lớn hơn bạn đã làm cho nó khó khăn hơn cho họ.

+0

Trong ứng dụng này, tôi nghĩ html là phần quan trọng nhất. Đó là một loạt các bài tập ngôn ngữ, nơi các câu hỏi, câu trả lời chính xác và phản hồi được lưu trữ bên trong html và chức năng này khá đơn giản. Và bạn nói đúng, tôi sẽ không muốn làm cho cuộc sống của tôi trở nên khó khăn hơn thế. Vì tôi là người mới đối với những loại vấn đề này, tôi chỉ tự hỏi liệu có thể làm được gì mà không có quá nhiều rắc rối. Bạn dường như đề nghị rằng 'rắc rối' trong giải pháp của tôi sẽ được viết với vốn H .... Tâm trí bạn, tôi không tìm kiếm một giải pháp an toàn tối thượng. – Kanarie

+0

Có thể làm điều gì đó giống như có câu trả lời đúng trong javascript là '" \ u0041 \ u0042 \ u0043 "' thay vì '" ABC "' hoặc trong HTML dưới dạng '" A B C "'. Điều đó chỉ làm chậm một người hiểu biết mã trong chưa đầy một phút, nhưng nó sẽ ngăn chặn một đứa trẻ ít hiểu biết hơn về việc cố gắng lẻn vào "ở mặt sau của cuốn sách", để nói. –

+0

Cảm ơn Jon, điều đó sẽ tốt nếu tôi quan tâm đến việc làm cho người khác khó có được câu trả lời đúng. Tuy nhiên, mối quan tâm chính của tôi là tìm ra cách làm cho người khác khó mà chỉ cần sao chép html/js/css-content sang một ứng dụng phonegap khác. Tôi càng đọc về nó, càng có vẻ như là giải pháp tốt nhất là hoặc là không làm gì cả hoặc để đi tất cả ra ngoài và thiết lập một cơ sở dữ liệu và tải dữ liệu được mã hóa từ đó. – Kanarie

11

Đây là một trong những câu trả lời yêu thích của tôi từ Nhóm Google PhoneGap bởi Kerri Shotts. Tôi thích nó bởi vì cô ấy đóng gói những suy nghĩ của tôi về vấn đề nhưng nó hùng hồn hơn tôi có thể:

Không thực sự. Có, bạn có thể làm xáo trộn nó, nhưng tôi có thể giải mã nó. Bạn có thể mã hóa nó, nhưng điều đó có nghĩa là khóa nằm trong mã của bạn ở đâu đó, trong đó có nghĩa là tôi cũng có thể không mã hóa nó. Khi tôi có thiết bị và các bit của bạn, tôi có thể làm bất kỳ điều gì tôi muốn với chúng.

Hãy nhớ rằng: thiết bị và hệ điều hành không có để bảo vệ ứng dụng từ người dùng của bạn. Nó ở đó để bảo vệ người dùng của bạn khỏi ứng dụng của bạn. Hoàn toàn mặt khác nhau để bảo mật.

Hãy nhớ điều này phần lớn là đúng với ứng dụng gốc. Hãy cung cấp cho tôi một chương trình Java hoặc ObjC và tôi cũng có thể tìm ra nó cũng dễ dàng như thế nào. Hơn nữa, trong hầu hết các nền tảng, tất cả các tài sản đồ họa chỉ là các tệp thông thường, có nghĩa là chúng được sao chép dễ dàng.

Đây là lý do tại sao có quá nhiều ứng dụng được sao chép lậu/nhân bản trên mạng. Và cuối cùng, , miễn là tôi có các bit cho phần mềm của bạn, có không có gì bạn có thể làm về nó. Tất cả những gì bạn có thể làm là khiến cho người dùng “khó khăn hơn” đối với người dùng - và mức độ "cứng" đó là tỷ lệ thuận (nếu không phải là theo cấp số nhân) để làm cho người dùng "khó khăn" hơn. Tức là, nếu bạn làm cho nó để 90% người dùng không thể crack hệ thống, đó là một mức độ khó khăn trong việc làm cứng ứng dụng; sau đó làm cho nó để 99% không thể crack nó đòi hỏi một bước nhảy vọt đáng kể trong lập trình khó khăn.

Bạn có thể, tất nhiên, tạo thói quen giải mã trực tuyến trong mã gốc đọc một thư mục/thư mục được mã hóa. Nếu bạn muốn làm điều đó, hãy đi trước . (Một hacker vẫn có thể đi xung quanh nó. Có/luôn luôn/một cách.) Am Tôi sẵn sàng đi xa đến vậy? Không.Đó không phải là thời gian hay nỗ lực của tôi, đặc biệt là khi nó sẽ không bảo vệ tôi khỏi những người thực sự là quan tâm đến việc đánh cắp tôi. [Một vấn đề khác: PG nên làm điều này? KHÔNG. Chỉ một chuyên gia bảo mật và hầu hết các nhà phát triển đều không.]

Tôi có quan điểm bi quan về bảo mật không? Vâng. Nếu bạn phân phối các bit , bạn sẽ mất bảo mật. Do đó, nếu bạn cần các hoạt động của ứng dụng sẽ rất an toàn, những hoạt động đó sẽ bị tắt trên một máy chủ rất an toàn ở một số tường lửa rất an toàn với lòng tốt - biết mức độ bảo mật ở giữa để đảm bảo không có ai có thể từng đoán ứng dụng thậm chí còn xác thực với máy chủ này như thế nào.

Tôi nói tất cả điều này đơn giản chỉ vì tôi không tin rằng nó là giá trị nỗ lực cho hầu hết các ứng dụng phải lo lắng về thực tế là www/thư mục có thể nhìn thấy và tiếp xúc. Tôi đã đi xa đến mức nói rằng với 99,99% số ứng dụng, đây là sự thật là . Trừ khi bạn đang làm việc trong lĩnh vực chăm sóc sức khỏe (và đăng nhập thông tin nhạy cảm ) hoặc chính phủ hoặc ngân hàng (với các ngân hàng thực tế), bạn không cần cần phải lo lắng về điều đó. Và nếu bạn đang có, bạn nên sử dụng PG? Hơn nữa, bạn có nên sử dụng thiết bị di động không? Tốt hơn trong ý kiến ​​của tôi là một webapp có ít mã máy khách và là về cơ bản là một hộp đen.

+0

Cảm ơn Simon. Tôi đoán tôi nên học cách ngừng lo lắng (và yêu quả bom) – Kanarie