10/10/2018, 13:19
Tránh bị file get contents PHP
Các bác cho e hỏi làm thế nào để chặn file get contents từ các trang khác ạ, giống như ddth đang làm ý. Nếu trang khác dùng hàm file_get_contents thì nó sẽ trả về 400 or 500 ý.
Bài liên quan
Về chặn header, nếu bạn xài cURL thì sẽ có một header là User-agent chỉ cho server của bạn biết là: bạn đang bị cURL. Mình chỉ cần xét User-Agent nào là cURL rùi chặn lại là xong.
Nhưng mà header của 1 request có thể manual edit nếu họ dùng trực tiếp fsockopen (trong php), có nghĩa là chặn header thì thường sẽ bị vượt qua .
Tiếp theo là thuộc tính của browser, có khá nhiều cách.
Ví dụ cách redirect, muốn truy cập vào 1 URLA, thì người dùng phải truy cập vào URLX, từ URLX mình set-cookie rồi redirect qua URLA, trong request URLA, trước khi mình process thì mình xem xem có cookie được redirect từ URLX hay ko, nếu không thì là invalid -> stop, nếu có thì process tiếp. Bạn cũng có thể làm nhiều lần redirect để tăng thêm độ khó. Cái này mình từng gặp từ 1 server chạy oracle, cũng rất ư là phiền.
Ví dụ cách se-ri-al request, cũng tương tự như cách redirect thôi, nhưng dùng cái thẻ script trong html. Trong html thì các thẻ script sẽ được load theo thứ tự từ trên xuống, trong mỗi src của mỗi thẻ script này, mình đánh dấu rằng: request này là hợp lệ, sau đó trước khi process request chính, mình kiểm tra tất cả các request phụ xem có hợp lệ không. Thường cái này được dùng kèm với ajax hoặc iframe.
Vấn đề cơ bản ở đây là: làm một số chuyện trình duyệt thông thường sẽ làm -> check xem các thuộc tính của request hiện tại có đến từ 1 trình duyệt bình thường hay là đến từ một đoạn code -> từ đó deny request hay process request.
Nếu bạn đọc mà không hiểu, vậy có nghĩa là hiện tại bạn chưa nên tham khảo vấn đề này vì chưa đến lúc.
s e r i a l
là các từ bị cấm mà
hack
fake
thì ko bị sao
mà sao bác ko edit lại cái ***** thành s e r i a l đi.