2009-11-03 39 views
6

Giả sử tôi đã phát triển một ứng dụng web php và muốn phân phối nó cho những người khác sử dụng làm phần mềm sở hữu độc quyền. Có bất cứ điều gì tôi có thể làm ngắn của một số loại giấy phép hoặc chỉ tin tưởng khách hàng để tránh phải cung cấp một giải pháp lưu trữ? Rõ ràng nếu tôi chỉ phân phối ứng dụng để trả tiền cho khách hàng để lưu trữ độc lập, tôi có nguy cơ bị rò rỉ mã.Quảng cáo một ứng dụng php?

Cập nhật:

Một số câu trả lời cho đến nay gợi ý xáo trộn. Tuy nhiên, điều này sẽ không ngăn cản người dùng khác chỉ đơn giản là plopping mã bị che khuất bị rò rỉ vào máy chủ của họ và sử dụng lại nó. Cấp cho họ sẽ không thể sửa đổi nó ... nhưng tôi đang tìm kiếm một cái gì đó hoàn chỉnh hơn. Bất kỳ ý tưởng?

Trả lời

4

Làm xáo trộn nó có thể đi một chặng đường dài. Nhiều người dùng sẽ không cố gắng tìm ra logic.

Bạn cũng có thể thêm khóa đăng ký - cái gì đó gọi cho mẹ và hoạt động như một khóa.

Chỉnh sửa: Điều tôi đã thực hiện với đăng ký: Bạn có thể bán giấy phép theo miền và yêu cầu người dùng đăng ký miền của họ tại trang web của bạn sau khi họ mua.

Một tập lệnh tôi đã mua yêu cầu kích hoạt tại trang web của họ. (Kịch bản cũng bị làm xáo trộn.) Không nhập tên miền, phần mềm ngừng hoạt động sau một khoảng thời gian nhất định. Chuyển miền và phần mềm ngừng hoạt động.

Tôi không biết cơ chế nhưng ý tưởng cơ bản là bạn muốn đảm bảo rằng tập lệnh đang chạy tại miền mà người mua cho biết đang chạy.

+3

Lưu ý rằng khóa đăng ký chỉ là phương pháp hợp lý nếu mã cũng bị làm mờ. – jheddings

+0

Bạn có thể xây dựng vui lòng trên khóa đăng ký không? Sẽ là một số logic của họ trong mã ngăn chặn nó chạy trừ khi một khóa đăng ký hợp lệ được lấy từ một máy chủ khác? –

1

Bạn có thể xây dựng vui lòng trên khóa đăng ký không? Sẽ là một số logic của họ trong mã ngăn chặn nó chạy trừ khi một khóa đăng ký hợp lệ được lấy từ một máy chủ khác?

Để thực hiện việc này, bạn sẽ phải tạo khóa cho người dùng khi họ mua ứng dụng. Ứng dụng sau đó sẽ giao tiếp với một máy chủ tổng thể mà lần lượt tìm kiếm khóa và kiểm tra tên miền khóa đến và gửi lại một sự đọc đơn giản hoặc sai. Nếu đáp ứng là đúng, ứng dụng sẽ tiếp tục hoạt động, nếu không nó sẽ tắt.

Vấn đề duy nhất với phương pháp này là nếu máy chủ chính của bạn bị hỏng, tất cả khách hàng của bạn sẽ bị khóa (trừ khi bạn tạo điều kiện nếu máy chủ chính bị hỏng, phản hồi mặc định sẽ là đúng)).

+1

Máy khách sẽ chỉ định cấu hình tường lửa của mình để chặn các kết nối gửi đi từ máy chủ web cục bộ đến máy chủ xác thực khóa. – yfeldblum

+0

Ồ tôi hiểu rồi. Một vấn đề khác, như tôi nghĩ một người khác đã chỉ ra rằng, điều này giả định rằng mã được làm rối loạn và người dùng không thể phát hiện ra (và loại bỏ) logic ngăn không cho mã chạy mà không có khóa. Tôi dường như không thể nghĩ ra một cách nào đó. –

+1

Có thực sự không phải là một cách xung quanh nó mà không obfuscating mã. Miễn là người dùng có quyền truy cập vào nguồn thô, họ có thể làm bất cứ điều gì họ muốn. – Iainzor

0

Zend có một sản phẩm "Zend Guard" (http://shop.zend.com/en/zend-guard.html) có thể cung cấp một cái gì đó hơn obfuscation.

Với thành phần chính của nó gồm Encoding, obfuscating và Licensing, Zend Guard bảo vệ các ứng dụng PHP của bạn từ kỹ thuật đảo ngược, tùy trái phép, sử dụng trái phép và phân phối lại

0

Ngoài ra còn có ionCube. Nói chung các giải pháp này yêu cầu một phần mở rộng phía máy chủ được nạp nhưng hầu hết các máy chủ sẽ được tải chúng đã được tìm thấy.

ionCube cho phép bạn cấp giấy phép cho một miền cụ thể nếu bạn muốn và cũng cho phép bạn đặt giới hạn thời gian cho tập lệnh (để yêu cầu gia hạn giấy phép).

Mặc dù theo mặc định, ionCube là hệ thống yêu cầu bạn tự tạo giấy phép, có một hệ thống mà bạn có thể mua để tự động quản lý nội dung này cho bạn (tôi nghĩ đó là PHP-Audit, mặc dù trang web đó dường như đã trải qua một thiết kế lại và vì vậy tôi không thể nói được nữa).

Các vấn đề liên quan