Tôi có nên bao gồm một phương pháp tự cấu trúc cho các ứng dụng của mình không?


39

Gần đây tôi đã có một trải nghiệm tiêu cực, nơi khách hàng được bảo lãnh từ hóa đơn, nhưng người trung gian của tôi đã tải phần mềm và thiết kế của chúng tôi lên máy chủ của khách hàng. Khách hàng hóa ra là một tên tội phạm được biết đến, và tất nhiên anh ta đã thay đổi tất cả các mật khẩu có thể có của máy chủ.

Tuy nhiên, tôi vẫn có thể truy cập bảng quản trị của CMS. Đáng buồn thay, phần mềm của tôi rất an toàn .. Đã thử SQL, giả mạo tải lên hình ảnh, v.v. Tuy nhiên, tôi không thể hack phần mềm của riêng mình .. Dù sao, tôi chuẩn bị kiện người này, vì vậy đó không phải là vấn đề .. Tôi chỉ nghĩ rằng, có lẽ nên có một số phương pháp tự cấu trúc phụ trợ. Vì vậy, nếu trường hợp tương tự xảy ra, tôi có tùy chọn để giết phần mềm.

Ý tưởng của riêng tôi là ẩn một số chức năng trong các tập tin cốt lõi. Mã hóa nó bằng base64, vì vậy nó sẽ không rõ ràng. Vì vậy, một cái gì đó như thế này:

eval(base64_decode('ZWNobyAnSGVsbG8gd29ybGQhJzs=')); // echo 'Hello world!';

Và về cơ bản tạo một tập lệnh nhỏ, lấy tất cả các tệp của phần mềm, đảm bảo chúng chắc chắn và sau đó xóa chúng.
Các phiên bản mới hơn của CMS, tất cả đều có trình quản lý tệp mà tôi có thể sử dụng để hack dễ dàng hơn . Nhưng điều gì sẽ xảy ra nếu quyền truy cập vào bảng quản trị bị hạn chế.

Rất rõ ràng , điều này chỉ dành cho phần mềm của giai đoạn phát triển, trong máy chủ cá nhân của tôi hoặc máy chủ của khách hàng (phần cuối là vấn đề đạo đức.) Vì vậy, nếu khách hàng của tôi nên ăn cắp phần mềm của tôi .. Điều này sẽ không được đưa vào thương mại -phần mềm.
Và để rõ ràng hơn nữa , chúng ta đang nói về những công việc tự do hiếm hoi đó . Tôi nghĩ nó khá logic, công việc hợp đồng không cần những phương pháp như vậy. Vì vậy, chúng ta đang nói về những khách hàng jumprisk đó, chỉ trong chế độ phát triển - khi dự án đã sẵn sàng, thì rõ ràng đây sẽ là một cửa hậu rất vô đạo đức để có trong phần mềm của bạn.

  1. Về mặt đạo đức đây có phải là một ý tưởng tốt? (Hãy ghi nhớ, rõ ràng là tôi sẽ xóa nó, khi dự án đã được 100% và mọi thứ đều được trả tiền)
  2. Các bạn đã bao giờ phải hack phần mềm của riêng bạn, vì các vấn đề tương tự với (các) máy khách?
  3. Bất kỳ khuyến nghị về ý tưởng này, mã và phương pháp khôn ngoan?
  4. Điều gì có thể là nhược điểm có thể có hoặc tác động của các kịch bản tự cấu trúc?

Kết luận của tôi về điều này

Có một chút buồn, rằng tất cả các câu trả lời được nhắm mục tiêu vào các trường hợp hợp đồng. Đó thực sự là lỗi của tôi, rằng tôi đã không nói rõ hơn trong câu hỏi của mình .. chỉ cần nghĩ rằng nó khá rõ ràng, rằng không có điểm nào trong khóa chuyển đổi .. khi bạn được bảo vệ bởi hợp đồng.
Tuy nhiên, nếu bạn đang thực hiện một công việc hợp đồng .. thì điều này nên được nêu trong hợp đồng - điều này làm cho nó hợp pháp, ngay cả trong máy chủ của khách hàng. Tuy nhiên, có các khóa chuyển đổi bên trong máy chủ cá nhân của riêng tôi thực sự là công việc cao quý (đây là điều tôi thực sự muốn biết.)

Tôi quyết định tạo tập lệnh kill-switch cho CMS của mình. Chủ yếu, bởi vì nó có vẻ là một thách thức thú vị. Nhưng ngoài ra, tôi có thể sử dụng điều này cho các tác phẩm không được ký hợp đồng của mình trong đó khách hàng là bạn của một người bạn của tôi .. Tôi có thể sẽ không sử dụng nó trên máy chủ của khách hàng, nhưng..cho các trường hợp, trong đó khách hàng hoặc một số người trung gian có quyền truy cập vào máy chủ của tôi .. Và phần mềm của tôi bị đánh cắp hoặc "di chuyển mà tôi không biết", sau đó tôi không được trả tiền và họ đã cắt quyền truy cập vào phần mềm.

Tôi đã đọc rất nhiều chủ đề ở đây, nơi họ đề nghị gửi cảnh báo và sau đó gỡ trang xuống. Chà, tôi đã thấy một vấn đề trong đó, khi tôi giao dịch với một người .. người sẽ chỉ sao chép nó sang một nơi khác (có thể đặt lại thương hiệu và bán nó) và nói với tôi rằng nó đã bị gỡ xuống. Và ngoài ra, tôi sẽ không "tắt trang web", nhưng xóa nó đi. Mặc dù vậy, tôi đoán việc truy cập máy chủ của khách hàng và xóa nó vẫn là bất hợp pháp. Hoặc ít nhất, truy cập vào máng phụ trợ chứ không phải từ FTP. Đối với điều này, tôi cảm ơn tất cả các bạn, những người đã trả lời.


26
Những nỗ lực của bạn sẽ được chi tiêu tốt hơn khi thực hiện thẩm định đối với khách hàng của bạn!
Steven A. Lowe

14
Để lại không chỉ một lỗ hổng bảo mật đã biết mà còn có chủ ý trong mã của bạn không chỉ không chuyên nghiệp mà còn khiến bạn gặp nguy hiểm về pháp lý.
Kevin D

2
cửa sau và bom có ​​lẽ không phải là một phần của đặc điểm kỹ thuật sản phẩm; tùy thuộc vào trách nhiệm pháp lý và luật hợp đồng ở quốc gia / tiểu bang của bạn, điều này có thể cấu thành vi phạm hợp đồng
Steven A. Lowe

11
Tôi thấy điều này và ngay lập tức nghĩ, Có lẽ tôi cần sau này .
Mason Wheeler

3
@ KalleH.Väravas Freeland làm việc! = Làm việc mà không có hợp đồng. Nó có nghĩa là "ai đó tự làm chủ và không cam kết với một chủ nhân cụ thể lâu dài". Làm việc mà không có hợp đồng hầu như luôn được xem là một ý tưởng rất tồi, vì lý do chính xác bạn đang hỏi câu hỏi này (khách hàng chạy đi mà không trả tiền cho công việc)
thedaian

Câu trả lời:


38

Tôi không phải là luật sư. Có vẻ như bạn đã có một mục đích để kiện khách hàng của bạn; trong khi bạn có anh ấy hoặc cô ấy ở lại, tôi khuyên bạn nên nhận lời khuyên của họ về điều này.

Có một số câu hỏi khác trên trang web này liên quan đến "khóa chuyển đổi" và các cách khác để vô hiệu hóa phần mềm mà nhà phát triển chưa nhận được bồi thường. Nó thường được coi là một ý tưởng tồi khi chỉ đơn giản là xây dựng một phần mềm "chìa khóa trao tay" (nơi bạn sẽ phát triển phần mềm và sau đó chuyển toàn bộ quyền cho khách hàng), mà không có hợp đồng đã quy định khả năng này.

Trước hết, nếu hợp đồng của bạn không quy định cụ thể rằng bạn có thể vô hiệu hóa phần mềm để không thanh toán hoặc khách hàng không có bất kỳ quyền nào đối với phần mềm cho đến khi thanh toán được nhận đầy đủ, thì bạn không thể lật bất kỳ "khóa chuyển đổi" nào mà không có đang vi phạm hợp đồng. Không có bất kỳ lời nói ngược lại, "sở hữu là chín phần mười của pháp luật", vì vậy đó là phần mềm của anh ta một khi anh ta được sở hữu, và để phá hủy nó sẽ giống như việc kích hoạt một tòa nhà văn phòng mới mà anh ta đã xây cho anh ta nếu anh ta không làm Tôi sẽ trả tiền cho nó.

Điểm thứ hai sau; bất kỳ hợp đồng nào bạn cung cấp cho bất kỳ khách hàng nào cũng cần có một điều khoản về hiệu lực của: "Chuyển giao quyền sở hữu trí tuệ đối với sự hài lòng của hợp đồng" . Điều đó có nghĩa là ngay cả khi bạn đã đưa cho anh ta một bản sao của phần mềm để sử dụng, cho đến khi anh ta trả tiền đầy đủ cho bạn, anh ta không sở hữu nó. Điều này sẽ cho bạn quyền vô hiệu hóa bất kỳ bản sao nào của phần mềm vì bất kỳ lý do gì cho đến khi nhận được thanh toán đầy đủ, bởi vì nó vẫn là của bạn và bạn có thể làm theo ý mình. Bây giờ, anh ta đã vi phạm hợp đồng, và bạn thì không, vì vậy trường hợp luật sư của bạn dễ dàng trình bày hơn, và trong khi đó khách hàng của bạn không nhận được bất kỳ lợi ích nào từ hàng hóa xấu của anh ta.

Sự tương tự với một nhà thầu xây dựng nắm giữ: một khi tòa nhà đang được xây dựng có thể được bảo đảm chống lại sự xâm nhập bất hợp pháp, và nhà thầu thường sẽ giữ tất cả các bản sao của tất cả các khóa cho cơ sở cho đến khi công trình hoàn thành và ký kết, và thanh toán nhận đầy đủ. Ngay cả sau khi các chìa khóa được bàn giao, nếu thanh toán rơi vào, anh ta có thể đính kèm một quyền cầm giữ trên tài sản và trong trường hợp cực kỳ có lại. Điều tương tự cũng đúng ở đây; bạn có thể cung cấp cho khách hàng một khóa để vào phần mềm, nhưng bạn giữ khóa "chính" và anh ta không có quyền truy cập quản trị cho đến khi bạn được thanh toán đầy đủ. Nếu anh ta có thể vào ngay bây giờ và không trả tiền cho bạn, bạn chỉ cần "thay đổi ổ khóa" và khóa anh ta khỏi phần mềm.

Tuy nhiên, bạn đã trao cho khách hàng của mình khóa "chính" cho phần mềm và anh ta đã đi và thay đổi tất cả các khóa để bây giờ BẠN không thể vào được. Đó không phải là cách nó hoạt động. Bạn vẫn có thể yêu cầu bồi thường thiệt hại, nhưng trong khi đó, khách hàng quanh co của bạn có thể sử dụng phần mềm, sao chép nó ở nơi khác (đó là một điều lớn không thể xảy ra với nhà thầu; nếu anh ta lấy lại tòa nhà của mình, anh ta không phải lo lắng về bạn 'Đã tạo một bản sao miễn phí chính xác trên một lô khác), v.v. Về cơ bản, biện pháp khắc phục duy nhất của bạn là thực thi thanh toán đầy đủ, bởi vì bạn không thể đảm bảo rằng bạn đã lấy lại tất cả các bản sao của phần mềm. Bạn có thể sẽ không vui khi nhận lại phần mềm của mình ngay cả khi bạn có thể đảm bảo rằng anh ta không còn bản sao nào nữa; đó có thể là công việc tùy chỉnh mà bạn không thể quay lại và bán cho người khác.

Hiểu rằng bất kể quyền của bạn đối với phần mềm, dữ liệu của anh ta thuộc về anh ta. Bạn không thể chạm vào nó. Bạn có thể ngăn chặn quyền truy cập của anh ta vào phần mềm mà bạn xây dựng, nhưng nếu bạn phá hủy dữ liệu của anh ta, điều đó giống như đốt cháy tài sản của anh ta sau khi xây dựng lại tòa nhà mà bạn xây dựng cho anh ta mà anh ta không trả tiền. Bạn không có quyền gì với dữ liệu đó và phải giữ nguyên vị trí trên máy tính của anh ấy hoặc nếu dữ liệu không thể được truy cập một cách hợp lý nếu không có phần mềm của bạn, bạn phải xóa nó khỏi sự vướng víu với phần mềm của bạn và đưa nó cho anh ta ở một định dạng có thể sử dụng (chẳng hạn như cơ sở dữ liệu tiêu thụ của con người, hoặc các bản sao in hoặc điện tử).


3
Câu trả lời ấn tượng! Cảm ơn bạn. Tôi đồng ý với bạn 100%, ngoại trừ câu hỏi này được hướng đến các công việc tự do trong tâm trí, xin lỗi tôi có lẽ đã không làm rõ trong câu hỏi. Tôi sẽ không bao giờ sử dụng các phương pháp như vậy với công việc theo hợp đồng, đó chỉ là lẽ thường và cũng là câu hỏi tại sao .. vì dù sao tôi cũng được bảo vệ một cách hợp pháp. Tuy nhiên, tôi đang nói về khi bạn có hợp đồng miệng với một anh chàng .. người muốn có một chiếc xe .. và bạn xây dựng nó cho anh ta. Sau đó, anh ta muốn nhìn thấy nó, trong khi bạn đang làm cho nó .. và lái xe đi. Vì vậy, trong chế độ phát triển .. sẽ không dễ dàng hơn khi có công tắc tiêu diệt .. cắt giảm đánh lửa?!
Kalle H. Väravas

11
Đây là lý do tại sao bạn KHÔNG BAO GIỜ làm công việc phát triển cho một người không tuyển dụng bạn, liên quan đến bất kỳ thời gian hoặc nguồn lực đáng kể nào, mà không có hợp đồng bằng văn bản. Đó vẫn là công việc "tự do", vì bạn tự đại diện cho mình như một nhà thầu độc lập, nhưng hợp đồng cho phép cả bạn và khách hàng của bạn bảo vệ phía sau của họ. Nó nêu rõ những gì cả hai bên sẽ cung cấp cho bên kia (không chỉ sản phẩm và tiền, mà cả các tài nguyên như không gian văn phòng và máy tính), và những gì sẽ xảy ra nếu bất kỳ điều gì không xảy ra như đã thỏa thuận.
KeithS

Đồng ý, tôi đã nhận được bài học của mình. Theo lý thuyết thì đúng, nhưng đó là một trong những kết hợp hiếm hoi của các biến khác nhau. Bạn của một người bạn, người muốn nó rẻ (1000 €), CMS cá nhân của tôi với thiết kế được làm theo yêu cầu. Tôi nghĩ rõ ràng hơn, cộng đồng lập trình viên cảm thấy thế nào về điều này. Cảm ơn câu trả lời của bạn, nó vẫn tập trung nhiều hơn vào các trường hợp được ký hợp đồng, nhưng để lại trí tưởng tượng cho các công việc không được ký hợp đồng.
Kalle H. Väravas

Câu trả lời tuyệt vời.
Teekin

21

Trong quan niệm bạn đúng. Việc thực hiện của bạn là tất cả sai.

Bạn cần phải cung cấp cho anh ta giấy phép dùng thử hết hạn. Khi thanh toán đầy đủ, hãy cấp cho anh ấy giấy phép "mãi mãi". Tất cả thẳng thắn và trung thực.


ý tưởng tốt hơn nhiều.
Loại ẩn danh

Thật vậy, câu trả lời đầu tiên không tranh luận về "lý do tại sao bạn không ký hợp đồng" hoặc "sử dụng unlink()là bất hợp pháp". Tôi thực sự thực sự thích ý tưởng của bạn, tôi có thể nấu một cái gì đó trong CRON.
Kalle H. Väravas

@Kalle: Không ai nói "sử dụng unlinklà bất hợp pháp." Những gì mọi người đã cố gắng vượt qua là Hoa Kỳ, ít nhất, có luật rất rộng về "sử dụng trái phép hệ thống máy tính"; theo thư của luật, hầu hết chúng ta đều đăng câu trả lời ở đây bằng máy tính làm việc. Trừ khi bạn có hợp đồng trao cho bạn quyền làm như vậy, việc vô hiệu hóa phần mềm từ xa chạy trên máy tính mà bạn không sở hữu gần như chắc chắn sẽ chạy theo luật này. Cho dù phần mềm bạn vô hiệu hóa đã bị đánh cắp hay không có khả năng không liên quan khi khoản phí sử dụng trái phép hệ thống mà nó đang chạy.
Dave Sherohman

@Dave. Tôi có quan điểm của bạn, nhưng nếu bạn nghĩ về nó. Nếu không có hợp đồng, vì vậy các điều khoản và những gì không được đặt ra. Sau đó, chương trình là lỗ như nó là. Vì vậy, nếu khóa chuyển đổi nằm trong mã khi phần mềm bị di chuyển / đánh cắp / chuyển giao .. thì sử dụng chức năng kill-switch đó (về cơ bản là unlik ()), là một phần của mục đích phần mềm .. Tôi đã nói chuyện với luật sư của mình và ông đã chỉ ra rằng việc hack phần mềm sẽ là bất hợp pháp (ví dụ sử dụng filemanager để tải lên tập lệnh hủy liên kết.) Nhưng nếu khóa chuyển đổi được bao gồm trong mã, như một phần của phần mềm, thì nó hoàn toàn hợp pháp.
Kalle H. Väravas

19

Không. Nếu khách hàng của bạn phát hiện ra bạn sẽ bị nới lỏng. Nó hoàn toàn không an toàn. Ai đó, một số cách sẽ tìm ra cách kích hoạt nó và sau đó đột nhiên bạn có nhiệm vụ liên hệ với tất cả khách hàng của mình để nói với họ về điều đó và tại sao họ phải thực hiện một bản vá khẩn cấp.

Nếu bạn hack nó, bạn cũng đang mở ra cho mình các thủ tục tố tụng hình sự. Tôi giả sử bạn có bằng chứng bạn vẫn sở hữu trang web? Rằng bạn có quyền truy cập nó? Chi phí cho doanh nghiệp của ông có thể là "thiên văn"

Có những lựa chọn thay thế được chấp nhận. Đặt một hình mờ trên trang web, để mỗi trang hiển thị một thông báo. Khi thanh toán, bạn có thể loại bỏ hình mờ.


Tôi hiểu rồi. Tôi nhận được quan điểm của bạn. Đối với hồ sơ, khóa chuyển đổi sẽ được đưa vào phần mềm phi thương mại và chủ yếu chỉ trong máy chủ của riêng tôi hoặc ít nhất là trong chế độ phát triển. Một số khách hàng yêu cầu, rằng sự phát triển sẽ được thực hiện bên trong các máy chủ của họ và điều đó khiến tôi rơi vào tình huống rất dễ bị tổn thương. Hiện tại tôi có tất cả các tập tin được ghi có, các thiết kế đều có hình mờ, tên tôi là MỌI NƠI - Tôi cảm thấy khá tự tin, rằng tôi sẽ thắng kiện .. Tôi nghĩ rằng có các khóa chuyển đổi trong máy chủ của riêng tôi vẫn là một ý tưởng tốt, trong trường hợp ai đó đánh cắp chúng.
Kalle H. Väravas

17

Đây có vẻ như là một ý tưởng tồi tệ có thể khiến bạn phải ngồi tù.

  1. Đó là phi đạo đức. Hành vi xấu của khách hàng của bạn không giúp bạn hack hệ thống của họ.
  2. Nó là bất hợp pháp. Điều này đã xảy ra trước đây , với kết quả xấu cho các bên vi phạm.
  3. Nó là vô nghĩa. Bạn có thể làm gì với cửa hậu này sẽ không khiến bạn gặp rắc rối? Bạn sẽ tống tiền khách hàng?
  4. Thật là ngu ngốc. Ngay cả khi bạn có thể làm điều này mà không bị bắt, những rủi ro tiềm ẩn vượt xa bất kỳ lợi ích nào có thể có.

1
Tôi xin lỗi, nhưng câu trả lời của bạn thiếu phần TẠI SAO. Tại sao nó là một ý tưởng tồi và dựa trên những gì tôi có thể đi tù? Bạn có thể giải thích thêm một chút?
Kalle H. Väravas

3
Theo như tôi đồng ý với tình cảm, @Kalle đã đúng. Vui lòng đưa ra một lý do. -1
Steven Evers

3
Bạn đang nói rằng một kill-switch là bất hợp pháp? Nếu hợp đồng quy định rằng dịch vụ sẽ bị đình chỉ do các trường hợp quy định, nó có thể không bất hợp pháp.
Thất vọngWithFormsDesigner

Nó phụ thuộc vào các tiêu chuẩn pháp lý của nơi bạn kinh doanh, nhưng trong các hệ thống pháp lý nói chung sẽ trừng phạt nghiêm khắc những nỗ lực để đưa vấn đề vào tay bạn. Họ thực sự muốn bạn đi qua hệ thống tòa án. Trong một số khu vực pháp lý chỉ cần truy cập vào một hệ thống máy tính mà không được phép là một trọng tội bị trừng phạt bởi thời gian tù. Bạn có thể lập luận rằng đó là phần mềm của bạn, nhưng tòa án sẽ nói rằng đó là để họ quyết định chứ không phải bạn.
Charles E. Grant

Phương thức kill-switch xuất hiện trong công việc tự do trong tâm trí. Xin lỗi, tôi quên đề cập đến điều đó trong câu hỏi của tôi. Tôi sẽ không bao giờ sử dụng các phương pháp như vậy trên một công việc hợp đồng. Các vấn đề pháp lý ở đây (Estonia) đang ở giai đoạn sơ khai khi nói đến luật bản quyền. Chúng tôi có luật tương tự, nhưng không giống như luật bản quyền như Thụy Điển và Phần Lan. Cá nhân tôi chưa bao giờ có bất kỳ vấn đề nào với khách hàng trước đây .. một số trì hoãn thanh toán, v.v. nhưng một tên côn đồ thực sự, kẻ đánh cắp phần mềm của bạn - đó là điều mới trong cuốn sách của tôi.
Kalle H. Väravas

12

Xin đừng hỏi lập trình viên, hãy hỏi luật sư. Tôi sẽ tưởng tượng ít nhất bạn sẽ muốn bao gồm một điều khoản trong hợp đồng của bạn nói rằng bạn có quyền làm những gì câu hỏi của bạn dự tính làm. (Không phải điều khoản "tác hại không thể khắc phục" của một số hợp đồng cho phép bạn có lệnh của tòa án để tắt phần mềm ngay lập tức cho đến khi tòa án có cơ hội loại bỏ nó?) bom mã (có thể được coi là tội phạm, nếu tòa án phát hiện bạn không sở hữu phần mềm thì đó có thể là phá hủy tài sản, ở Mỹ, nó có thể nằm trong các phần mã hóa kỹ thuật số của Đạo luật thiên niên kỷ kỹ thuật số, v.v. tưởng tượng chiến thắng thiệt hại tại tòa án dân sự và vẫn bị kết án tại tòa án hình sự).

Các quy tắc sẽ khác nhau tùy thuộc vào nơi bạn và khách hàng của bạn sống và hoạt động, vì vậy tôi thực sự nghĩ rằng bạn sẽ muốn một luật sư.


Chà, kill-switch chủ yếu nhắm vào công việc tự do. Với một hợp đồng dễ dàng hơn nhiều. Hiện tại trường hợp cơ bản là như thế này: Phần mềm của tôi, không có kiến ​​thức của tôi đã được chuyển ra khỏi máy chủ của tôi và đó là nó. Sau đó, một lần nữa, trường hợp ăn cắp rất rõ ràng của nó - vì vậy về mặt pháp lý, tôi không lo lắng. Vì vậy, khóa chuyển đổi chủ yếu sẽ nằm trong máy chủ của riêng tôi, khi phần mềm của tôi bị đánh cắp. Mặc dù, tôi bắt đầu cảm thấy rằng đó vẫn là một ý tưởng tồi. Cảm ơn câu trả lời của bạn, tôi sẽ gặp luật sư của tôi sau vài ngày.
Kalle H. Väravas

5

Về mặt đạo đức đây có phải là một ý tưởng tốt?

Tuyệt đối không. Nó không chỉ làm cho bạn trông không chuyên nghiệp đối với những khách hàng trung thực, đứng đắn, mà tôi cảm thấy rằng điều đó cũng gây bất lợi cho toàn bộ nghề nghiệp. Các kỹ sư phần mềm phải có trách nhiệm với khách hàng hoặc chủ nhân của họ, bao gồm việc cung cấp phần mềm có chất lượng cao nhất. Nếu có tranh chấp về thanh toán hoặc hợp đồng, có các kênh thích hợp. Giảm chất lượng phần mềm của bạn không phải là một kênh thích hợp.

Các bạn đã bao giờ phải hack phần mềm của riêng bạn, vì các vấn đề tương tự với (các) máy khách?

Không bao giờ, mặc dù tôi chưa bao giờ thực hiện hợp đồng hoặc công việc tự do. Tôi luôn là nhân viên của một tổ chức lớn hơn (trong một số trường hợp, làm việc theo hợp đồng). Đối với tôi, ý nghĩ là không thể tưởng tượng được. Tôi thà cung cấp phần mềm mà tôi tự hào có tên của mình và bị lừa bởi một tỷ lệ nhỏ khách hàng hơn là làm giảm chất lượng phần mềm cũng như trách nhiệm đạo đức của tôi đối với người dùng hệ thống.

Bất kỳ khuyến nghị về ý tưởng này, mã và phương pháp khôn ngoan?

Đừng làm điều đó.

Điều gì có thể là nhược điểm có thể có hoặc tác động của các kịch bản tự cấu trúc?

Bên cạnh các vấn đề đạo đức rõ ràng, tôi lo lắng về các vấn đề pháp lý. Tôi không chắc chắn nếu phá hoại công việc của chính bạn là hợp pháp, và ngay cả khi nó là, sử dụng khai thác như vậy có thể không.


Cảm ơn bạn vì câu trả lời. Tôi đã chỉnh sửa câu hỏi của mình để hoàn toàn rõ ràng, rằng điều này về cơ bản sẽ được ẩn 100% khỏi máy khách .. Vì nó sẽ chủ yếu nằm trong máy chủ của riêng tôi và chỉ trong chế độ phát triển. Vì vậy, khi ai đó đánh cắp phần mềm của tôi, tôi có thể giết nó. Mặc dù, nó bắt đầu rõ ràng hơn, rằng tôi nên sử dụng luật pháp chứ không phải là "lực lượng".
Kalle H. Väravas

2
@ KalleH.Väravas Không quan trọng là nó ở đâu, nhưng thực tế là bạn đã viết nó để bắt đầu. Người ta thậm chí có thể đưa ra lập luận rằng việc đưa nó vào môi trường phát triển chứ không phải môi trường sản xuất thậm chí còn tồi tệ hơn, vì hai môi trường không còn giống nhau và nó trở thành một biến số khác để giải quyết trong quá trình phát triển và triển khai.
Thomas Owens

3

Chỉ cần thực hiện một mô-đun cấp phép với giấy phép giới hạn thời gian sẽ vô hiệu hóa phần mềm khi hết hạn. Đây là một thực tiễn nổi tiếng trong ngành công nghiệp phần mềm và khách hàng của bạn không nên phản đối nó, vì bạn sẽ loại bỏ giới hạn sau đó.

Điều này cũng có thể có ích, khi bạn muốn giới hạn các tính năng và cung cấp các phiên bản khác nhau của sản phẩm.

Kill switch chỉ có quá nhiều rủi ro và không đáng.


2

Một tính năng tự hủy bí mật là một ý tưởng khủng khiếp . Vâng, bạn sẽ thông minh và có thể có cơ hội gắn bó với một khách hàng khủng khiếp trong tương lai, nhưng cách đó rắc rối hơn giá trị của nó.

  1. Bạn vẫn sẽ không được trả tiền cho công việc bạn đã làm. Có, người khác sẽ không sử dụng mã của bạn; nhưng bạn vẫn sẽ bị thiếu thanh toán. Bạn nghĩ rằng một số tội phạm sẽ quyết định trả tiền cho người đã đưa xuống trang web của họ một lần từ xa? Họ sẽ tìm thấy một số phần mới để làm cho trang web của họ miễn phí.

  2. Sử dụng trình tự tự hủy, khiến bạn phải chịu trách nhiệm về các vấn đề pháp lý của riêng bạn. Tùy thuộc vào khu vực pháp lý, bạn có thể dễ dàng bị coi là hack / hủy dữ liệu của họ (khi họ chuẩn bị thanh toán và có nhiều tình tiết giảm nhẹ vì lý do họ không thanh toán sớm hơn). Ngay cả khi bạn không bị kết án / bị kiện thành công, bạn vẫn có thể phải trả các khoản phí pháp lý khổng lồ và gặp nhiều rắc rối hơn giá trị của nó.

  3. Điều gì sẽ xảy ra nếu một số khách hàng trả tiền tốt duyệt mã của bạn sau này (hoặc có một người bạn CS vừa duyệt nó để thực hiện một chỉnh sửa nhỏ), thấy chức năng với phần base64 kỳ lạ, giống như cái này, cố gắng thực thi nó và vô tình xóa ứng dụng web (và có phải trong khi bạn đang đi nghỉ nên phải mất một thời gian để khắc phục)? Hoặc đăng một loạt các đánh giá công khai về bạn ở khắp mọi nơi nói rằng bạn là người vô đạo đức và để lại những hậu trường trong công việc của bạn? Chắc chắn bạn có thể xóa nó khỏi sản phẩm hoàn chỉnh sau khi họ trả tiền, nhưng với VCS, họ có thể duyệt nguồn cũ hơn hoặc không muốn bạn trên máy chủ của họ sau khi họ trả tiền (và đó sẽ là một cuộc trò chuyện khó xử; vâng tôi cần một tài khoản một lần nữa, vì tôi không biết 'T loại bỏ cửa hậu tự hủy bí mật).

  4. Nếu tội phạm sao lưu dữ liệu của họ thì sao? Bạn xóa máy chủ web của họ bằng một cửa hậu bí mật, trang web ngoại tuyến trong một hoặc hai ngày trong khi họ (hoặc một người bạn) tìm thấy chức năng backlink chức năng vi phạm và trở lại trực tuyến.

Trong tương lai, hãy để mọi người ký hợp đồng đơn giản, trả tiền cho bạn theo từng giai đoạn và đừng để mã rời khỏi máy chủ phát triển và máy tính mà chỉ bạn kiểm soát cho đến khi bạn được thanh toán. (Nếu họ cần nó được phát hành trước khi tất cả công việc kết thúc; hãy chắc chắn rằng họ đã trả khoảng cho phần mã đang tồn tại). Nếu họ muốn xem công việc đang được phát triển, hãy yêu cầu họ cung cấp cho bạn một vài địa chỉ IP mà bạn sẽ mở tường lửa cho máy chủ phát triển của mình (và có thể với một CNAME thông minh để tạo hiệu ứngunpaid_work_in_development.example.com). Không đảm bảo thời gian hoạt động của máy chủ dev của bạn và nếu bạn đang có lưu lượng truy cập nhiều hơn mức bạn nên (ví dụ: bạn thấy họ đang chuyển hướng rất nhiều người đến trang web của bạn) chỉ cần tắt tường lửa cho đến khi họ trả tiền. Nếu họ cần đóng góp nội dung cho máy chủ web của bạn, hãy gửi email cho bạn bằng các đề xuất nội dung hoặc tạo thư mục chia sẻ dropbox cho họ chỉ có quyền ghi vào tập hợp con nhỏ của tệp (dưới sự kiểm soát của VCS bên ngoài dropbox) mà họ có thể đóng góp một cách có ý nghĩa (ví dụ, các mẫu html).


Gắn bó với một khách hàng khủng khiếp trong tương lai? Đó là âm thanh mà tôi không hỏi hoặc thậm chí đề cập đến. Và nếu tôi không được trả tiền, nhưng anh ta sẽ mất phần mềm, thì điểm 1 của bạn hợp lệ như thế nào? Ngoài ra, có hai điểm trong câu hỏi của tôi, đó là đạo đức / pháp lý khi có khóa chuyển đổi bên trong máy chủ của riêng tôi và / hoặc trong máy chủ của khách hàng. Bạn đã không đề cập đến những gì bạn có nghĩa là. Khá chắc chắn, rằng tôi có thể có các khóa chuyển đổi trong máy chủ của riêng mình .. Vì vậy, khi ai đó sao chép nó, tôi có thể xóa nó từ xa. Và tôi nghĩ rằng các khách hàng tốt là không liên quan, vì khóa chuyển đổi không được bao gồm trong phần mềm. 1 dòng của nó.
Kalle H. Väravas

2

Bạn đã hỏi sai câu hỏi. Điều cần làm và cải thiện không phải là thêm một số công cụ tiêu diệt từ xa (thêm một lỗ hổng mà bạn hoặc người khác có thể sử dụng), mà là khắc phục vấn đề thực sự của bạn, đó là cách sắp xếp thanh toán và giao hàng kém. Âm thanh như bạn cần một hệ thống ký quỹ tốt hơn (hoặc bất cứ khái niệm nào như vậy được gọi là nơi bạn sống).

Đừng lãng phí thời gian của bạn vào một công tắc tiêu diệt, hãy tìm ra nơi bạn làm hỏng việc trong phần thỏa thuận kinh doanh của nó.


-1 Xin lỗi, nhưng câu trả lời của bạn không đúng chủ đề. Lời khuyên tốt, một chút xúc phạm nhưng vẫn còn. Tôi không khuyên bạn nên đưa ra phán xét vì bạn không biết toàn bộ câu chuyện cũng như bạn không biết, tôi thường làm kinh doanh như thế nào.
Kalle H. Väravas

2

Tôi nghĩ rằng tôi sẽ nghĩ ra một số loại cơ chế cấp phép. Điều này có thể dựa trên bất kỳ số ý tưởng sản xuất tại nhà hoặc thương mại nào và có thể khiến phần mềm ngừng hoạt động sau khi giấy phép hết hạn. Tại thời điểm hệ thống được khách hàng chấp nhận và họ đã trả tiền cho bạn có thể cung cấp giấy phép đầy đủ không hết hạn.

Cách tiếp cận này cũng cần sự chấp thuận của luật sư trong lãnh thổ của bạn nhưng có ưu điểm là bạn không cần phải vô hiệu hóa phần mềm từ xa và bạn có thể quy định rằng đây là một phần của hệ thống trước khi sử dụng. Tuy nhiên có vẻ rất buồn với tôi rằng bạn đang đối phó với những người từ chối trả tiền ngay từ đầu.


Tôi bắt đầu thực sự yêu thích ý tưởng phần mềm dùng thử. Tuy nhiên, phần thứ hai là iffy. Về cơ bản, nếu cấp phép dùng thử hoặc thậm chí là khóa chuyển đổi sẽ là một phần của phần mềm, thì nó hoàn toàn hợp pháp. Tùy thuộc vào công việc được ký hợp đồng hoặc không ký hợp đồng, nó cần được ghi trong hợp đồng.
Kalle H. Väravas

2

Đây không phải là DRM sao? Miễn là bạn gỡ bỏ bom bom khi nhận thanh toán, tôi thấy không có vấn đề pháp lý nào với nó. Chỉ cần đảm bảo rằng bạn có sẵn một miếng vá để che mông của bạn và cho thấy rằng bạn không có ý định độc hại.

Nó nhắc nhở tôi về điều khoản 'viên thuốc độc' trong các bài viết về việc thành lập công ty của một số công ty được kích hoạt trong trường hợp tiếp quản thù địch.

Nói một cách dí dỏm, tâm lý được thể hiện bởi một số áp phích khác ở đây nhắc nhở tôi về lý do tại sao một số lập trình viên luôn luôn bước đi. Nếu nhiều người đặt bom như vậy vào mã của họ, tôi nghĩ các lập trình viên có thể được trả tiền kịp thời hơn ... Tôi hoàn toàn không có vấn đề gì nếu đây là chuẩn mực. Mọi người thích ăn cắp công việc khó khăn của người khác. Giai đoạn. Và nếu Apple, et al. Có thể DRM ra khỏi công cụ của họ, sau đó tôi nghĩ rằng các lập trình viên tự do cũng có thể ...


Tôi thích câu trả lời của bạn, nó giải quyết vấn đề của tôi rất nhiều sau đó là câu trả lời khác. Tôi đã kiểm tra với luật sư của mình và anh ta nói rằng sau đó vào bên trong bảng quản trị và tải lên một kịch bản hủy liên kết thông qua trình quản lý tệp, xem xét việc hack - bất hợp pháp. Tuy nhiên, nếu có một chức năng thực sự được tích hợp sẵn trong phần mềm .. thì đó là một phần của phần mềm và có mục đích riêng. Điều này rõ ràng nên được đề cập trong hợp đồng, mặc dù câu hỏi này là về các công trình phi hợp đồng. Cảm ơn câu trả lời của bạn :)
Kalle H. Väravas

0

Trên một lưu ý thực tế, chắc chắn khách hàng sẽ kiểm tra nhật ký của họ, tìm yêu cầu hủy, khôi phục mã từ bản sao lưu, loại bỏ khóa chuyển đổi và triển khai lại.


Đúng, tuy nhiên điều này phụ thuộc vào máy khách, phần mềm, máy chủ. Trong trường hợp của tôi, khách hàng hầu như không thể thay đổi quyền truy cập ftp. Nhưng kiểm tra các bản ghi là không thể. Ngoài ra, máy chủ đó không hỗ trợ bất kỳ hoạt động đăng nhập nào như vậy .. cả CMS khiêm tốn của tôi ..
Kalle H. Väravas

-2

Các chi tiết câu hỏi của bạn làm rõ rằng đây sẽ là một ý tưởng hoàn toàn khủng khiếp. Khách hàng đầu tiên phát hiện ra một khóa chuyển đổi như vậy (có thể sau khi bạn sử dụng nó và họ phục hồi từ bản sao lưu) sẽ xuất bản khóa chuyển đổi và thực tế là bạn đã đưa nó vào mã bạn đã gửi cho họ. Danh tiếng của bạn sau đó sẽ bị phá hủy hoàn toàn.

Và trước khi bạn nói "tốt, họ sẽ là một kẻ bế tắc, họ sẽ phá hủy danh tiếng của tôi như thế nào?" Hãy xem xét một kịch bản như thế này: Khách hàng ở trạng thái tốt, nhưng một trong những nhân viên của họ lấy một bản sao của mã. Họ sa thải nhân viên đó, anh ta nhìn vào mật mã, tìm ra công tắc tiêu diệt và sử dụng nó. Đoán xem ai nhận lỗi? (Gợi ý: Là bạn.)


Tôi không đồng ý. Nó thực sự là một ý tưởng rất tốt. Nếu bạn đọc chi tiết một cách cẩn thận, thì bạn sẽ hiểu rằng tôi đang nói về các công việc không hợp đồng .. trong trường hợp ví dụ của tôi, khách hàng có thể nghi ngờ. Danh tiếng của anh ta như một tên côn đồ được biết đến so với nỗ lực bảo vệ bản thân của tôi. Tôi không nghĩ rằng điều này sẽ ảnh hưởng tiêu cực đến danh tiếng của tôi. Kịch bản của bạn có vẻ như hợp đồng làm việc .. trong trường hợp đó tôi có hợp đồng, không cần đến kill-switch. Tuy nhiên, nếu không có hợp đồng thì họ cũng không thể lấy được bản sao của mã ..
Kalle H. Väravas

Nếu không có hợp đồng, thì bạn đã ký hợp đồng quyền kích hoạt khóa chuyển đổi trên phần cứng của họ, phải không? Ý kiến ​​tồi.
David Schwartz

Nếu không có hợp đồng, thì không có điều khoản nào là một phần của phần mềm. Nếu kill-switch là một phần của phần mềm, thì có .. theo quan điểm của các lập trình viên: nó có đạo đức không? Tuy nhiên, nó là hợp pháp. Bởi vì mục đích kill-switch là một phần của tập lệnh, sẽ được kích hoạt từ xa với mục đích duy nhất là xóa MỌI THỨ. Nó hợp pháp, vậy tại sao nó là ý tưởng tồi?
Kalle H. Väravas

1
Vì vậy, bạn đang nói cố ý làm cho máy tính của người khác ngừng hoạt động theo cách họ muốn nó hoạt động mà không có sự cho phép của họ (khi bạn biết rằng nếu bạn đặc biệt hỏi họ nếu bạn có thể làm điều này, họ sẽ nói "không") giống nhau về mặt pháp lý như thực hiện một hoạt động vô hại trong đó bạn không có lý do gì để nghĩ rằng chủ sở hữu của hệ thống sẽ có bất kỳ phản đối nào đối với bạn khi thực hiện nó? Tôi rất thích nghe bạn nói điều đó với bồi thẩm đoàn. (Nhắm và bắn súng vào một người cũng giống như bật công tắc đèn, phải không?)
David Schwartz

1
Câu trả lời bạn nhận được chỉ tốt như câu hỏi bạn hỏi. Ví dụ, bạn đã hỏi họ về trường hợp tôi đã thảo luận trong câu trả lời của tôi chưa? (Một cựu nhân viên tìm ra cách kích hoạt công tắc tiêu diệt.)
David Schwartz
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.