Tôi đang ở trong một tập lệnh PHP và tôi muốn kiểm tra xem yêu cầu đó có phải là một yêu cầu Ajax hay không. (Về cơ bản như vậy là không cho phép truy cập trực tiếp kịch bản, khác với Ajax gọi đó là ...)Kiểm tra yêu cầu Ajax trong Mã Igniter
Vì vậy, tôi đang định IS_AJAX
đâu đó trong chính index.php
file:
define('IS_AJAX',
isset($_SERVER['HTTP_X_REQUESTED_WITH']) &&
strtolower($_SERVER['HTTP_X_REQUESTED_WITH']) == 'xmlhttprequest');
Và sau đó kiểm tra nó ở phía trên cùng của kịch bản của tôi:
if (!IS_AJAX) exit('No direct script access allowed');
Kể từ khi tôi mới vào CodeIgniter, tôi không thực sự chắc chắn ...
- Có chức năng tích hợp nào không?
- Có cách nào khác ... thanh lịch để làm điều đó không?
Tuyệt vời! Tôi biết tôi có thể thiếu một cái gì đó ... Cảm ơn rất nhiều, bạn đời! –
is_ajax_request() không phải là biện pháp bảo mật. Có một câu trả lời tương tự, trong đó 404 được trả về thay vào đó, điều này sẽ tránh được một ấn tượng gây hiểu lầm. (HTTP/1.1 "Mã trạng thái này thường được sử dụng khi máy chủ không muốn tiết lộ chính xác lý do yêu cầu bị từ chối hoặc khi không có phản hồi nào khác được áp dụng") http://stackoverflow.com/questions/6555652/controller- các phương thức được gọi là-by-ajax-make-private/8072539 # 8072539 – sourcejedi
tôi thường sử dụng phương thức tải để tải tệp, làm cách nào để ngăn các tệp đó tải trực tiếp? –