Gần đây tôi đã thực hiện một chương trình. Tôi quên xóa 2 dòng mã. Sai lầm đó khiến tôi mất 800 đô la mỗi ngày.
Tôi đã lập trình với PHP. Nếu khách truy cập sử dụng proxy, nó sẽ chuyển hướng đến một nơi khác. Sử dụng trình gỡ lỗi là không thể vì một số mã có chứa ioncube. Bởi vì chương trình chỉ đơn giản là chuyển hướng đến một nơi khác bất kể là gì, thật khó để xem phần nào của mã được thực thi.
Vì vậy, tôi đặt một loạt các thông tin gỡ lỗi ở khắp mọi nơi. Tôi nghĩ rằng tôi sẽ xóa chúng sau.
Tất nhiên, cách gỡ lỗi tự nhiên nhất là đưa thông tin gỡ lỗi vào một tệp. Vấn đề là tôi thường sử dụng proxy. Vì vậy, sau khi tôi thay đổi chương trình, tôi thường phải tải xuống tệp văn bản với filezilla. Thường thì tệp văn bản không hiển thị những gì tôi nghĩ nó sẽ hiển thị. Cuối cùng tôi quyết định chỉ hiển thị lỗi trên web.
Tôi xem xét có chế độ gỡ lỗi. Tuy nhiên, tôi sợ tôi sẽ quên xóa thông tin gỡ lỗi.
Tôi đã xem xét việc có chế độ gỡ lỗi nếu người dùng thực hiện? Debuggingmode = 1 chẳng hạn. Tuy nhiên, tôi đã hoang tưởng rằng bằng cách nào đó đối thủ của tôi có thể đoán được từ khóa bí mật.
Tôi đã xóa hầu hết các thông tin gỡ lỗi. Tôi quên xóa một và cái đó chỉ hiển thị nếu người dùng sử dụng proxy từ đúng quốc gia. Hóa ra tôi không có proxy từ đúng quốc gia và không nhận ra điều đó. Sau khi chương trình hoạt động được 24 giờ, tôi đã tải nó lên miền chính của mình.
Đối thủ của tôi, sử dụng proxy, xem mã gỡ lỗi. Anh ta sao chép ý tưởng và đó là cách tôi mất $ 800 mỗi ngày.
Nhìn lại, tôi thực sự có một thời gian khó khăn để xem tôi đã sai ở đâu. Tôi đã siêu cẩn thận. Vậy mà nó đã xảy ra.
Làm thế nào để gỡ lỗi một ứng dụng web PHP một cách an toàn mà không tiết lộ bí mật cho các đối thủ cạnh tranh?