Showing posts with label Website. Show all posts
Showing posts with label Website. Show all posts

September 15, 2016

August 14, 2015

BẢO VỆ KHU VỰC QUẢN TRỊ ADMIN CỦA CÁC LOẠI MÃ NGUỒN PHP

Trong bài viết mới mình muốn đề cập đến vấn đề bảo mật, cụ thể tăng cường bảo mật khu vực quản trị dành cho Admin tránh bị phá hoại, code chạy trên các loại mã nguồn hỗ trợ php như Vbb thì nó là Admincp, WordPress là WP-Admin, Joomla là Administrator,…
Bảo vệ khu vực quản trị Admin của các loại mã nguồn PHP
Vậy bảo mật ra sao?
Thật ra mà nói cách này cũng khá đơn giản dựa trên lệnh CHMOD của hệ thống. Mình sẽ tạo ra 2 tập tin on.php và off.php như công tắc tắt mở vậy. Khi chạy on.php bạn mới có đủ quyền mở folder chứa code, còn với tập tin off.php có nhiệm vụ sẽ đóng lại folder này.
Bạn chỉ cần up 2 tập tin này lên máy chủ, không cần biết đặt tại folder nào.
on.php
off.php
Về cơ bản 2 tập tin này chỉ khác nhau về chmod, bạn chú ý:
+ chmod 701: on.php
+ chmod 000: off.php
Ngoài ra, mình set thêm thời gian để khi bạn chạy url domain.com/on.php trong vòn khoản 5s bạn sẽ được chuyển về index.php (trang chủ). Bạn có thể sửa lại tùy thích, con số 5000 bên trên là 5000 mili giây, tương đương 5s đó.
Bạn chú ý sửa lại đường dẫn CHMOD đúng theo hệ thống của bạn mới chạy được. Cụ thể cái dòng này phải được sửa lại
Để biết chính xác vị trí của folder quản trị như Admincp, Wp-Admin,… nằm ở đâu, bạn tạo 1 tập tin trong folder đó.
location.php
Bạn up tập tin location.php này lên thư mục cần bảo vệ. Sau đó bạn chạy nó trên trình duyệt, sẽ thấy được đường dẫn chính xác của thư mục. Bạn copy đúng chuẩn đường dẫn này vào 2 tập tin kia (chỗ cái đoạn màu xanh bên trên đấy nhé).
nguồn hoiquantinhoc.com

August 1, 2015

CHUYỂN WEBSITE CŨ SANG WEBSITE MỚI BẰNG .HTACCESS

Có rất nhiều phương pháp để chuyển website cũ sang website mới mà vẫn bảo toàn được những điểm số khi thực hiện di chuyển. Sau đây là phương pháp sử dụng .htaccecss để xử lý việc này khi muốn chuyển từ website cũ sang website mới
Trước khi bạn thực hiện điều này, đương nhiên bạn phải chuyển toàn bộ nội dung của trang web cũ sang website mới. Việc tiếp theo bạn thêm dòng code dưới đây vào file htaccess của bạn để hoàn tất quá trình chuyển đổi mà vẫn giữ được các giá trị của website cũ khi sang website mới.
  • Điều này đảm bảo cho máy tìm kiếm (Search Engine) xác định được website mới của bạn sẽ thừa hưởng các điểm số của website cũ. Các điểm số ở đây là : Các liên kết đến website cũ, các domain được trỏ đến, Độ uy tín của tên miền, tuổi tên miền…
  • Đảm bảo khách hàng, người dùng của bạn chuyển hướng sang website mới nếu bạn chưa kịp thông báo cho họ.
Trong thư mục gốc của website các bạn tạo file .htaccess sau đó thêm các dòng sau:
Chuyển tất cả các đường dẫn tên miền cũ sang tên miền mới. Thực hiện trên máy chủ chứa website cũ:
Cách 1:
Đối với website  mới sử dụng www
RewriteEngine On
RewriteBase /
RewriteCond %{HTTP_HOST} !tenmienmoi.com$ [NC]
RewriteRule ^(.*)$ http://www.tenmienmoi.com/$1 [L,R=301]
Website mới không sử dụng www
RewriteEngine On
RewriteBase /
RewriteCond %{HTTP_HOST} !tenmienmoi.com$ [NC]
RewriteRule ^(.*)$ http://tenmienmoi.com/$1 [L,R=301]
Cách 2
RewriteEngine On
RewriteBase /
RewriteRule ^.*$ http://tenmienmoi.com/ [R=301,L]
Nếu bạn chỉ thay đổi tên miền chính tức là vẫn giữ nguyên các yếu tố đằng sau của tên miền cũ khi chuyển sang tên miền mới thì bạn thực hiện như sau:
Cách 1:
RewriteEngine On
RewriteBase /
RewriteRule ^(.*)$ http://tenmienmoi.com/$1 [R=301,L]
Cách 2
RewriteEngine On
RewriteBase /
Redirect 301 / http://www.tenmienmoi.com/
Ví dụ : http://tenmiencu.com/trang-cu.html khi thực hiện dòng lệnh này sẽ được: http://tenmienmoi.com/trang-cu-html
Nếu bạn chỉ muốn thay đổi tên miền chính và giữ lại toàn bộ các trang và muc liên quan của website trước đó.

July 1, 2015

Khắc phục lỗi (It is not safe to rely on the system’s timezone)

Khắc phục lỗi (It is not safe to rely on the system’s timezone)
Trên php phiên bản 5.3.0 trở đi một số source sẽ phát sinh lỗi function code không trùng với ngày giờ hệ thống và báo lỗi đòi set mặc định timezone và  gây nên lỗi header cannot add cookies … Vì thế chúng ta hãy mở filefunction.php trong source và thêm vào ngay  function đầu tiên đoạn mã sau:

date_default_timezone_set('UTC');

Hoặc edit file php.ini nếu bạn là chủ vps hay server đang host site đó.
up file lên overwrite file gốc là xong .

June 6, 2015

PHÂN BIỆT PHP CGI,SUPHP,FASTCGI PHP HANDLER ?

1.PHP HANDLER LÀ GÌ ?

Khi chạy một site PHP, server phải cần thông dịch PHP và tạo ra trang web khi người dùng truy cập vào. Tùy vào từng người dùng, thời gian địa điểm mà webiste có thể được tạo ra khác nhau. Code PHP được phiên dịch dựa vào bộ thư viện PHP như PHP4 và PHP5. PHP handler sẽ điều khiển quá trình những gì load lên từ bộ thư viện PHP.
Có nhiều PHP Handler hiện nay được sử dụng như DSO, CGI, SuPHP, FastCGI.Mỗi handler có những tác động đến performance của Apache khác nhau bởi vì nó xác định Apache sẽ dùng PHP như thế nào.
Có một vấn đề quan trọng là tùy thuộc vào tình hình (máy chủ, CPU, Ram, Nhu cầu, mục đích) mà chúng ta sẽ chọn handler thích hợp. Không có handler nào hoàn toàn tốt hơn cái nào. Vì vậy phải lựa chọn cho phù hợp.
Hiện tại thì FastCGI đang được dùng khá phổ biến.
Sau đây sẽ đề cập tổng quan về tất cả các PHP Handler. So sánh hiệu năng của các handler này.

2. DANH SÁCH CÁC PHP HANDLER

2.1 DSO

Được biết như là mod_php. Mặc dù được xem như là một phiên bản cấu hình cũ nhưng mặc nhiên nó là Handler nhanh nhất. Nó chạy PHP như một Apache Module. Điều đó có nghĩa là các PHP Script sẽ chạy dưới quyền của Apache user. Đó là user 'nobody'.'
DSO có 2 điểm yếu:
a> Tất cả file được tạo ra từ PHP script sẽ được sở hửu bổi user 'nobody'. Chúng không có khả năng đọc được từ Web. Điều này khá phổ biến với người dùng Wordpress. Nếu họ dùng tính năng upload file thông qua Wordpress interface hay dùng tính năng auto update thì sẽ bị fail với DSO.
b> Về vấn đề bảo mật. Việc tạo file sẽ dưới danh nghĩa người dùng 'nobody'. Nếu một hacker tìm được một lổ hổng trong PHP script, họ có thể thực thi một file cùng một quyền hạn như những file hệ thống mà được đánh dấu sở hữu là 'nobody'. Điều này làm hacker có khả năng chỉnh sửa các file hệ thống khác. Để chống lại điều này thì phải thường xuyên update PHP lên các phiên bản mới nhất.

2.2 CGI

CGI handler sẽ chạy PHP script như một CGI module. Nó vẫn chạy tiến trình PHP dưới danh nghĩa của user 'nobody'. CGI được xem như là một hình thức dự phòng khi DSO không có hiệu lực. Phương pháp này không nhanh cũng không an toàn, dù cho SuExec có được bật hay không.

2.3 SuPHP

SuPHP cũng chạy PHP như CGI module. Nó khác với CGI là khi PHP scripts được gọi từ web Server sẽ được chạy dưới quyền của user sở hữu PHP scripts đó. suPHP thông thường là một handler mặc định và được khuyến cáo bởi cPanel để chạy PHP bởi vì bạn sẽ có thể thấy user nào đang chạy đoạn PHP script.
SuPHP có một điểm lợi là khi bạn sử dụng công cụ upload file lên website của bạn, các file này sẽ được phân đúng quyền hạn của user đó. Upload và một vài tính năng khác của WordPress không hoạt động nếu không sử dụng suPHP hoặc FastCGI
SuPHP cũng cung cấp một lợi thế bảo mật hơn là DSO hay CGI. Tất cả những PHP Scripts không thuộc một user cụ thể nào đó sẽ không thể nào thực thi được hoặc user này sẽ không thể nào thực thi được các PHP Scripts của user khác. Điều này có nghĩa là khi một tài khoản nào đó bị đánh cắp, các scripts cũng không thể nào lây lan sang các tài khoản khác được.
Điểm yếu của suPHP là sử dụng CPU cao. Thêm vào đó, bạn không thể sử dụng Opcode Cache (như xCache) với suPHP. Khi sử dụng suPHP nếu CPU load cao bạn có thể chuyển lại dùng DSO hoặc FastCGI.

2.4 FastCGI

FastCGI là một giải pháp thay thế có hiệu suất cao thay cho CGI. Nó giống suPHP ở chỗ sẽ chạy PHP Script dưới quyền sở hữu PHP Scripts đó. Điểm khác là FastCGI sẽ chạy ít tốn tài nguyên CPU hơn và đạt tốc độ gần bằng DSO. FastCGI sử dụng được opcode cacher như eAccelerator để load web nhanh hơn.
Điểm yếu của FastCGI là sử dụng Ram nhiều. Nếu muốn có tốc độ nhanh và bảo mật tốt ít tốn CPU, ta có thể xem xét sử dụng FastCGI.

June 3, 2015

VPS căn bản [Phần 10] – Cài đặt WordPress

Trải qua 8 phần chắc bạn cũng đã nóng lòng cần biết qua cách cài đặt WordPress trên VPS rồi. Thật ra nếu bạn đã có kinh nghiệm dùng Shared Host thì chỉ đọc hết bài MySQL là đã có thể tự cài đặt WordPress được.
Và ở hướng dẫn này, mình sẽ hướng dẫn bạn cách cài WordPress nhanh chóng trên VPS sử dụng Apache Webserver.

I. Cách cài đặt WordPress trên VPS

Để cài đặt WordPress trên VPS, bạn không cần tải mã nguồn về máy rồi upload lên thủ công qua sFTP mà chỉ cần sử dụng lệnh wget để lôi mã nguồn WordPress về VPS, sau đó giải nén ra và cài thôi.
Ok, đó là 2 bước mà bạn cần chuẩn bị. Bây giờ chúng ta tiến hành cài một trang WordPress mới.
Đầu tiên là bạn cd vào thư mục public_html trong thư mục virtualhost mà bạn đã thêm vào. Ví dụ của mình là/home/webdata/domains/thachpham.dev/public_html.
01
cd /home/webdata/thachpham.dev/public_html
Sau đó tiến hành chạy lệnh sau để tải source WordPress về thư mục mà bạn đang truy cập.
01
yum install wget && wget https://wordpress.org/latest.tar.gz
Rồi giải nén file latest.zip ra.
01
tar -xvf latest.tar.gz
Nếu nó có bảo command not found thì gõ lệnh yum install unzip rồi giải nén lại.
Lúc này nếu bạn gõ lệnh ls ra xem thì WordPress đang ở trong một thư mục ..public_html/wordpress/, bạn hãy moi nó ra thư mục public_html.
01
mv wordpress/* . && rm -rf wordpress
Tiếp theo là cho user apache và group apache sở hữu các file và thư mục trong thư mục cài đặt WordPress của bạn để không cần CHMOD lại khi upload ảnh, cài plugin, và quan trọng là nó không còn hỏi tài khoản FTP, sFTP khi cài theme/plugins.
01
sudo chown -R apache:apache *
Ok đã hoàn thành xong bước cài đặt rồi, bây giờ bạn có thể truy cập vào website để thấy website WordPress của bạn và bắt đầu cài WordPress như bình thường.
Bây giờ bạn có thể sử dụng WordPress như bình thường rồi đó, và hầu như không gặp lỗi gì khi cài các plugin cả vì Apache tương thích với WordPress rất tốt. Bạn cũng đã CHOWN thư mục chứa WordPress rồi nên không cần phải CHMOD lại để upload file hay cài plugin, mọi thứ diễn ra hoàn toàn tự động.

III. Chuyển một website WordPress từ host khác về VPS

Chắc chắn ở đây ai cũng đã có một website WordPress riêng nên sẽ cần tìm hiểu cách chuyển một website WordPress từ host khác về VPS này để sử dụng.
Hướng dẫn chuyển host về VPS mình đã có viết rất chi tiết tại đây nên bạn có thể xem qua.

IV. Tăng tốc cho WordPress trên VPS dùng Apache

Cách đơn giản nhất bạn có thể làm bây giờ là cài thêm XCache vào để hỗ trợ tăng tốc code PHP trong WordPress. Bạn hãy gõ lệnh dưới đây để cài XCache cho VPS:
01
yum install php-xcache
Và khởi động lại Apache:
01
service httpd restart
Sau đó mình khuyến khích bạn nên cài đặt W3 Total Cache theo hướng dẫn này. Nhớ sử dụng tính năng Object Cache với XCache nhé.

Lời kết

Đó là những gì mình cần truyền tải trong bài này. Thật sự mà nói sử dụng WordPress trên VPS không chỉ có nhiêu đây nhưng mình xin tạm dừng serie ở đây bởi vì mình tin chắc rằng qua 10 bài trong serie này bạn đã hiểu được bản chất VPS là như thế nào, cũng như cách sử dụng nó.
Còn các việc như cài PhpMyAdmin thì bạn có thể tìm thêm tutorial trên mạng, rất dễ thực hiện.
Nếu bạn đã thật sự rành VPS rồi, mình khuyến khích bạn sử dụng WordPress trên một webserver khác mạnh mẽ và nhanh hơn Apache rất nhiều đó là NGINX. Nếu bạn chưa từng trải qua NGINX thì hãy theo dõi serieLEMP Webserver để biết NGINX là như thế nào rồi sẽ cảm nhận được sức mạnh của nó.
Nếu bạn cần tìm hiểu thêm về các lệnh Linux cũng như cần hiểu sâu hơn về nó, thì đây là một số tài nguyên bạn có thể đọc qua:
Đừng quên theo dõi thêm các thủ thuật khác về website trên blog của mình nhé.
Nếu bạn cảm thấy serie này có ích, hãy share nó! Và đừng quên đóng góp ý kiến nếu bạn thấy mình có hướng dẫn sai chỗ nào hoặc cần bổ sung cái gì.