Mặc định, PHP tự động thêm header X-Powered-By vào tất cả các response trước khi gửi trả về client.
Ví dụ:
~~~
X-Powered-By: PHP/5.6.25
~~~
Nếu website sử dụng phiên bản PHP cũ không còn được hỗ trợ hoặc phiên bản có chứa lỗi bảo mật nào đó thì việc hiện rõ phiên bản PHP trong response trả về như trên sẽ làm tăng khả năng website bị tấn công.
Do đó về phương diện bảo mật, chúng ta nên giấu thông tin header này trước khi gửi trả response về cho client.
Việc kiểm tra mime type, file size... của file upload trong CakePHP 2.x có thể được thực hiện khá đơn giản bằng việc định nghĩa rule validate như sau:
``` php
public $validate = array(
'file' => array(
'mimeType' => array(
'rule' => array('mimeType', array('image/gif', 'image/png')),
'message' => 'Mime type is invalid',
),
'fileSize' => array(
'rule' => array('fileSize', '<=', '1MB'),
'message' => 'File size is too big',
),
),
)
```
Nếu ô input upload file trong form là bắt buộc (required) thì với rule như trên hoàn toàn không có vấn đề gì. Tuy nhiên, nếu input upload file là tùy chọn, nghĩa là user có thể upload file hoặc không, thì trong trường hợp user không chọn file khi gửi form lên server, rule trên sẽ sinh ra lỗi tại bước check `mimeType` như sau:
``` php
Can not determine the mimetype
```
Bài này chỉ có ý nghĩa ghi chú trong quá trình chỉnh sửa lại thiết lập PHP trên AWS của công ty, do đó nội dung không đầy đủ.
Thêm repo:
https://webtatic.com/packages/php56/
Cài PHP và thiết lập config:
http://www.servermom.org/how-to-build-working-centos-server-with-nginx-and-php/
Centos6 package list:
http://mirror.centos.org/centos/6/os/x86_64/Packages/
Install PHP5.6:
http://devdocs.magento.com/guides/v2.0/install-gde/prereq/php-centos.html#instgde-prereq-php56-install-centos