2013-08-11 51 views
7

Từ những gì tôi hiểu có OUTFILEINFILE được bật là rất nguy hiểm. Bất cứ thứ gì cho phép người khác viết và đọc tệp từ hệ thống đều nguy hiểm với tôi và vì máy chủ của tôi đang lưu trữ trang web công cộng. Tôi biết rằng giải pháp tốt nhất là để ngăn chặn SQL Injection với mã của tôi, nhưng con người đôi khi có thể mắc lỗi. Vì vậy, tôi muốn hạn chế người dùng được sử dụng trong PHP của tôi để truy cập rất hạn chế. Nếu điều sai, thiệt hại sẽ được giảm thiểu.Làm thế nào để vô hiệu hóa OUTFILE và INFILE?

Cách tắt OUTFILEINFILE?

+0

bạn đã xem tài liệu hướng dẫn mysql về [quyền tệp của người dùng] (https://dev.mysql.com/doc/refman/5.1/en/privileges-provided.html#priv_file) chưa? –

+1

Tôi đã tìm kiếm "làm thế nào để vô hiệu hóa MySQL OUTFILE" trong Google của tôi. Nó không dẫn tôi đến đó. Hãy để tôi kiểm tra nó để xem nếu có câu trả lời ở đó. – invisal

+0

không phải lo lắng. Một tìm kiếm GS và DuckDuckGo không dẫn tôi đến đó. Tuy nhiên, tìm kiếm thông qua trang web [Mysql documentation website] (https://dev.mysql.com/doc/#manual). Từ khóa để bao gồm trong bất kỳ tìm kiếm quyền nào là "Cấp". –

Trả lời

8

Các quyền người dùng cho FILE liên quan đến tải dữ liệu/INFILE/INTO OUTFILE hoạt động loại:

"Đặc quyền FILE cho phép bạn đọc và ghi các tập tin trên máy chủ máy chủ bằng cách sử dụng INFILE LOAD DATA và SELECT ... INTO OUTFILE câu lệnh và hàm LOAD_FILE() Người dùng có đặc quyền FILE có thể đọc bất kỳ tệp nào trên máy chủ lưu trữ hoặc là có thể đọc hoặc đọc trên máy chủ MySQL ....

Sử dụng thu hồi để kiểm soát privs FILE, từ mysql CLI:

#change to mysql system db 
use mysql; 
#use the REVOKE (opposite of GRANT) to disable any FILE operations 
#in all dbs for the specific user/host. use % to block all hosts. 
REVOKE FILE on *.* FROM 'specificuser'@'specifichostname'; 

Ngoài ra, nếu bạn gặp sự cố, bạn có thể chọn lọc CẤP hoạt động FILE trên cơ sở dữ liệu cụ thể và trong phạm vi họ, cụ thể những cái bàn.

Hơn nữa, nếu không tắt hoàn toàn, bạn có thể điều chỉnh thêm điều khiển cho phép trên một thư mục như/tmp được sử dụng, giới hạn truyền tải của các tệp dữ liệu với biến hệ thống sysvar_secure_file_priv.

Để biết thêm thông dành riêng cho những xem hướng dẫn: FILE Privilege REVOKE Syntax System Variable: secure_file_priv

Câu hỏi này là một ví dụ tuyệt vời của nó như thế nào là tốt nhất để nghĩ về bảo mật từ "Deny Tất cả mọi thứ, Cụ phép khi cần thiết "mindset. Trái ngược với lần đầu tiên cấp cho người dùng quyền ALL và sau đó chọn lọc thu hồi chúng, mà tôi thấy rất thường xuyên do thiếu sự quen thuộc với hệ thống GRANT/REVOKE trong mysql.

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