Tôi đang cố gắng giúp một người bạn di chuyển một trang web từ một khách sạn web này sang một khách sạn khác. Nơi cũ đã bị đóng, tôi chỉ có một tập tin tar phẳng của những gì có trong đó.Quyền nào cho tập lệnh/thư mục PHP?
Trang web chứa tài liệu HTML và có thể tải xuống một ứng dụng Java nhỏ (được tải trên điện thoại di động) để gửi dữ liệu đến trang web.
Ứng dụng Java di động đã gửi một chuỗi đến URL=<HOST>/php/register.php
. Tập lệnh php này bao gồm một tập lệnh php khác (../inc/db_login.php
), được kết nối với một DB SQL sử dụng $link=mysql_connect()
. Một tệp khác, register.php
, đã chèn SQL để đưa dữ liệu mới được gửi vào DB.
Câu hỏi của tôi là cơ bản, nơi tôi nên đặt 2 tệp PHP này trên trang web mới và những quyền mà thư mục và tệp phải có?
Máy chủ web cũ rõ ràng có các thư mục /php
và /inc
. Không ai trong số này tồn tại trên máy chủ web mới. Tôi có nên tạo chúng không? Họ nên có giấy phép gì? Tôi đoán lý do có mật khẩu trong một tệp PHP riêng biệt là bảo mật. Thư mục /php
và /inc
có thể có các quyền khác nhau.
Máy chủ mới có thư mục:
/httpdos
/httpsdos
/cgi-bin
/conf
(và một số người khác có thể không thích hợp)
Câu hỏi của tôi
Phần mở rộng tệp (
.php
) có nghĩa là gì đó với máy chủ: như tập lệnh PHP được bao gồm trong mã HTML (giữa<?...?>
, máy chủ có cần xem hậu tố tệp hay không liên quan? (Tôi hiểu rằng các máy chủ phản ứng trên<?...?>
, tất nhiên)nên các tập tin công cộng (
register.php
trong trường hợp của tôi) được đặt trong thư mụchttpdocs/
hoặc làm máy chủ (apache tôi nghĩ) phản ứng trên một cái gì đó và lấy nó trong một thư mục khác?Nếu tập lệnh PHP có quyền
R-X
(đọc và thực thi),--X
(thực thi) hoặcR--
(đọc)? Từ quan điểm hệ điều hành, tôi đoán apache chỉ đọc các tệp này, có nghĩa là chúng phải làR--
, nhưng điều này có nghĩa là nếu dịch vụ PHP bị "ngừng", máy khách sẽ nhận được tất cả mã PHP trong trình duyệt của mình (?). Tôi thích nó là--X
nhưng vì đây không phải là nhị phân hay cũng không có#!
, tôi đoán nó phải là--R
?Nếu tập lệnh PHP công khai có thể được đặt trong một thư mục khác (ví dụ:
/php
thay vì/httpdocs
) thì cần/php
(và tập lệnh nào) để được phép ?. Tôi đoán máy chủ phải biết về thư mục/php
này (hoặc có mặc định thông thường không?)Tập lệnh PHP được bao gồm (
../inc/db_login.php
, có chứa mật khẩu SQL) không được theo/httpdocs
Tôi đoán vậy. Điều này có nghĩa là sốregister.php
của tôi bao gồm một tệp không nằm trong phụ đề/httpdocs
. Điều này có hiệu quả không? Máy chủ có cần biết không?
Tôi hiểu bạn có thể cần biết cấu hình máy chủ. Chỉ cần giả định mặc định trong câu trả lời của bạn (và bạn có thể biết nó được thay đổi nếu nó ở đâu).
Cảm ơn câu trả lời của bạn. Tôi sẽ đặt register.php trong httpdocs/php. Bây giờ tôi đã cố gắng tạo/inc và bao gồm ../../inc/db_login.php, nhưng việc tạo/inc đã bị từ chối ... nên db_login.php được đặt trong cgi-bin sau đó ?. Và nếu apache đang ở trong chế độ an toàn, thì db_login phải nằm trong cây httpdocs ... có phải đó là một nguy cơ an toàn không? –
Không có gì khác hơn là CGI script nên trong 'cgi-bin'. Có, có tập tin cấu hình theo DocumentRoot là một nguy cơ bảo mật tiềm năng; PHP có thể giải quyết vấn đề này bằng cách có tùy chọn cấu hình chỉ định một thư mục bổ sung có thể được bao gồm một cách rõ ràng. Nhưng nó không. –
Nhưng nếu cả hai register.php và db_login.php đều nằm dưới gốc html doc và quyền của chúng là như nhau, thì độ lợi (security wise) là gì để có chúng trong 2 tệp khác nhau. Tôi nghĩ rằng ý tưởng là để có "bảo mật hơn" xung quanh các mật khẩu được bao gồm trong db_login ...? Nó không phải là một nguy cơ mà mã được cho khách hàng nếu PHP không? Một lần nữa, rất nhiều người cảm ơn thời gian của bạn./C –