Tự động thêm CSRF Token vào mọi truy vấn Ajax trong CodeIgniter

Trong CodeIgniter, khi bạn thiết lập cấu hình bật bảo vệ CSRF (Cross Site Request Forgery) trong config.php $config['csrf_protection'] = TRUE; thì mọi truy vấn từ client tới server đều được kiểm tra xem có chứa token hay không. Khi làm việc với các truy vấn ajax thì bạn sẽ phải thêm tham số ...

Tác giả: Hoàng Hải Đăng viết 20:53 ngày 11/08/2018

Bảo mật hơn trong tải file

Tải trên tiêu đề bài viết là tải lên lẫn tải xuống . Trong đó sẽ nói ra một số các phòng trách được lỗi đã nói trong bài viết Khai thác lỗ hổng của chức năng download file. Mình sẽ trình bày theo các phần như sau: Phạm vi máy chủ. Phạm vi mã nguồn. Phạm vi máy chủ Có hai vấn đề ...

Tác giả: Tạ Quốc Bảo viết 20:53 ngày 11/08/2018

Cách download CSV trong framework Fuelphp

Download CSV cho framework Fuelphp http://fuelphp.com/ Tạo file app/classes/format.php <?php // app/classes/format.php を作成 class Format extends FuelCoreFormat { /** * CSV出力をSJIS-WINで返す * @access public * @param mixed $data * @return ...

Tác giả: Trịnh Tiến Mạnh viết 20:53 ngày 11/08/2018

Trim space fullsize và halfsize bằng Regex trong PHP

Hàm số trim space fullsize và halfsize trong PHP /** * Remove space fullsize * * @param string $str string before remove * @return string after removed */ public static function mb_trim($str, $chars = 's ') { $str = preg_replace("/^[$chars]+/u", ', $str); $str = preg_replace("/[$chars] ...

Tác giả: Bùi Văn Nam viết 20:53 ngày 11/08/2018

99-bottles-of-beer

The song, and the home page 99-bottles-of-beer cũng từng là đề bài của code golf và phpgolf. Mission của chúng ta là code 1 đoạn PHP snippet print lyric của bài hát mà dung lượng đoạn code là nhỏ nhất. Logic thật đơn giản phải không :D 99 bottles of beer on the wall, 99 bottles of beer. Take ...

Tác giả: Tạ Quốc Bảo viết 20:52 ngày 11/08/2018

Thay đổi thư mục Public trong laravel framework

Trong quá trình làm việc với laravel, đôi khi sẽ có thay đổi chút về thư mục public trong laravel. Cụ thể như khi chạy nó trên các shared hosting thường là chỉ có thư mục public_html hoặc một số qui định bắt buộc ở các môi trường khác nhau mà tên thư mục này sẽ đổi theo, và trong bài này mình sẽ ...

Tác giả: Hoàng Hải Đăng viết 20:51 ngày 11/08/2018

ServiceManager trong ZF2

Service Manager là một Design Pattern quan trọng được đưa vào trong ZF2, Service Manager sẽ trả về cho bạn một đối tượng được đăng ký trong ứng dụng. Service Manager cung cấp rất nhiều cách để bạn đăng ký một service. 1. Factory 1.1 Sử dụng Anonymous Function Với các bạn đã làm quen ...

Tác giả: Tạ Quốc Bảo viết 20:50 ngày 11/08/2018

Mã mô phỏng lỗ hổng CVE-2015-4024

Như đã mô tả trong bài viết trước, CVE-2015-4024 là một lỗ hổng nghiệm trọng của hầu hết các phiên bản PHP và mới chỉ được vá gần đây. Trong báo cáo bug thì người phát hiện (một nhà nghiên cứu an ninh ở Baidu Trung Quốc) đã tái hiện tình huống và phân tích cụ thể, tuy nhiên chưa đưa ra đoạn mã mô ...

Tác giả: Bùi Văn Nam viết 20:50 ngày 11/08/2018

7 bước làm trang web bán hàng ( phần 1 )

7 bước làm trang web bán hàng ( phần 1 ) Với wordpress , thì việc làm 1 site bán hàng thì plugin woocommerce là một lựa chọn khá là hợp lý. Nhưng mà đối với nhu cầu của chúng ta là chỉ để show sản phẩm, và đặt hàng đơn giản thì plugin lại quá cồng kềnh, vì nó có nhiều chức năng mà ta không ...

Tác giả: Bùi Văn Nam viết 20:50 ngày 11/08/2018

Late static binding trong PHP

Trong PHP 5.3 ngoài các tính năng mới như namespace, closure được giới thiệu thì còn một tính năng nữa ít được chú ý hơn (ít nhất là mình nhận thấy vậy) đó là late static binding. Thì đầu tiên chúng ta cần phải biết late static binding là gì? Cái này mình cũng không biết giải thích sao nữa. Thôi ...

Tác giả: Trịnh Tiến Mạnh viết 20:50 ngày 11/08/2018

Bước đầu với Lumen

Để sử dụng Laravel hay Lumen thì trước hết phải có composer . Bạn có thể cài đặt cả composer và lumen như các câu lệnh dưới đây. # Cài đặt composer curl -sS https://getcomposer.org/installer | php # Lấy file composer.phar về thư mục hiện tại sudo mv composer.phar /usr/local/bin/compo ...

Tác giả: Bùi Văn Nam viết 20:49 ngày 11/08/2018

[PHP] Khai thác lỗ hổng của chức năng download file

Lời nói đầu Mình viết bài này chỉ để nêu ra lỗ hổng khi code chứ không mang mục đích hướng dẫn hacking, do đó Nếu có gà thì mong đừng gạch đá, tội nghiệp. Nếu có hack thì vui lòng đừng mang mình ra làm bia đỡ đạn nếu bị bắt. :( Có thể "chiêu trò" này nhiều người cũng đã biết rồi. :) ...

Tác giả: Trịnh Tiến Mạnh viết 20:49 ngày 11/08/2018

Vượt qua password file để download tại tenlua.vn

Disclaimer: Mình đã thông báo bug này cho support tenlua.vn 2 lần, và họ đã fix bằng cách upgrade 1 bản api ver 2, tuy nhiên api ver 1 vẫn hoạt động song song trên server và vì thế ta lại nghịch ngợm Cách đây hơn 1 năm, mình có viết tool get link hàng loạt từ mediafire, tenlua.vn. Hỗ trợ ...

Tác giả: Tạ Quốc Bảo viết 20:49 ngày 11/08/2018

Mock static function trong PHP

Static function không phải là gì xa lạ đối với hầu hết các ngôn ngữ hiện đại. Trong PHP, static function hay được sử dụng với singleton pattern. Dưới đây là một ví dụ public class Book { /** * @return Book */ public static function Instance() { static $instance = ...

Tác giả: Tạ Quốc Bảo viết 20:49 ngày 11/08/2018

Lỗ hổng bảo mật mới và nghiêm trọng của hầu hết phiên bản PHP (5/2015)

Lỗ hổng với mã CVE-2015-4024 được coi là nghiêm trọng khi cho phép attacker thực hiện tấn công từ chối dịch vụ (DoS) gây ra tổn thất lớn cho máy chủ chỉ bằng một đoạn mã nhỏ. Nếu một hệ thống botnet được trang bị sử dụng chiến lược này thì thiệt hại gây ra sẽ là khủng khiếp. CVE-2015-4024 ...

Tác giả: Tạ Quốc Bảo viết 20:48 ngày 11/08/2018

Xóa một tham số của URL trong PHP

Trong thực tế rất nhiều trường hợp ta phải xóa 1 tham số trên URL, có rất nhiều cách thực hiện việc này, nhưng hôm nay tôi sẽ chia sẻ với cách bạn cách mà tôi hay dùng Ví dụ có link như sau: http:/abc.net/?search=abcd&sort=asc&theme=default Giờ tôi muốn xóa đi tham số sort trên URL thì ...

Tác giả: Tạ Quốc Bảo viết 20:48 ngày 11/08/2018

Từ khóa private và final trong PHP

Private function trùng tên trong class cha - con Bản thân rất hay quên nên mình memo lại đây <?php class A { private function whoami() { echo 'A', PHP_EOL; } public function out() { $this->whoami(); } } class B extends A { private function whoami() ...

Tác giả: Tạ Quốc Bảo viết 20:48 ngày 11/08/2018

Sử dụng phinx để thực hiện migration trong PHP

Migration là gì Migration là một tính năng được "vay mượn" từ Rails - Ruby framework, rất hữu dụng khi chúng ta thay đổi database (thường là MySQL) và muốn quản lý version của những lần thay đổi đó. Thay đổi có thể là thêm bảng, thêm cột vào bảng hay thay đổi các cột trong cùng một bảng. Nếu các ...

Tác giả: Bùi Văn Nam viết 20:48 ngày 11/08/2018

Bảo mật web với wordpress

Vấn đề bảo mật website nói chung và bảo mật website wordpress là một vấn đề rất được quan tâm. Vì có rất nhiều hacker muốn phá web của bạn. Nhiều khi có lý do chẳng hạn như bạn là đối thủ, hay một nguyên nhân nào đó, nhưng cũng nhiều khi chẳng có mục đích gì, chỉ là thích. Hôm nay sẽ nói về vấn ...

Tác giả: Bùi Văn Nam viết 20:47 ngày 11/08/2018

Chuỗi regex check toàn bộ ký tự full size

Regex kiểm tra chuỗi nhập vào có chứa toàn bộ ký tự full size không Trả về true khi $value chứa toàn bộ ký tự full size preg_match('/^[^ -~。-゚x00-x1f ]+$/u', $value);

Tác giả: Bùi Văn Nam viết 20:47 ngày 11/08/2018