2010-02-13 30 views
5

Tôi là người dùng CodeIgniter và tôi đang xem Kohana. Điều đầu tiên tôi nhận thấy là trong tài liệu mỗi đoạn bắt đầu với:Kohana: Có cần kiểm tra xem SYSPATH đã được xác định chưa?

<?php defined('SYSPATH') or die('No direct script access.'); 

giả sử tôi sẽ sử dụng .htaccess cho địa chỉ viết lại, điều này thực sự cần thiết? Nó là một thay thế cho .htaccess cho purpouse tránh truy cập trực tiếp? Nó chỉ là một thực hành tốt cho "bảo vệ chiều sâu"?

+0

CodeIgniter cũng vậy: nếu (! Được xác định ('BASEPATH')) thoát ('Không cho phép truy cập tập lệnh trực tiếp'); – shadowhand

Trả lời

10

Nếu bạn đang sử dụng tệp .htaccess để bảo vệ tệp hệ thống của mình, điều này không bắt buộc. Tuy nhiên, kể từ khi kohana có hỗ trợ sử dụng không .htaccess, chúng tôi đặt rằng có trong các tập tin hệ thống cốt lõi cho một số bảo mật cơ bản.

+2

+1 Rất vui khi tự mình phát triển Kohana Framework Developer. – Sampson

5

Được sử dụng để đảm bảo bạn chỉ có thể truy cập tập lệnh thông qua index.php (trong đó SYSPATH được xác định).

Đó là một lớp bảo mật khác nếu tệp tập lệnh của bạn ở vị trí có thể truy cập web. Kiểm tra này sẽ ngăn mọi người thực hiện các lớp như http://example.com/application/classes/controllers/welcome.php

Thực tế, các tệp phải nằm ngoài webroot với index.php tham chiếu đúng vị trí, nhưng không phải lúc nào cũng có thể, vì vậy chúng có kiểm tra đó.

Tôi đoán bạn có thể thoát khỏi việc bỏ qua nếu bạn có .htaccess bảo vệ các thư mục đó, nhưng không tốn bất cứ thứ gì để bạn có thể giữ lại.

+0

Tôi biết nó làm gì –

+1

Tôi đã mở rộng câu trả lời cho bạn. –

+0

Cảm ơn (15 ký tự) –

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