10/10/2018, 09:52
[PHP] Mảng $_POST tự thêm slashes vào ah
Lâu nay không để ý vấn đề này nên không biết
Mình thử thì thấy nếu nhập vào form dấu ' hay " thì PHP nó tự thêm dấu vào trước mỗi dấu ' hay "
Vậy dùng hàm addslashes() để chống hack chỉ dành cho mảng $_GET thôi ah? Có phải phiên bản PHP nào cũng thế hay không?
Mình thử thì thấy nếu nhập vào form dấu ' hay " thì PHP nó tự thêm dấu vào trước mỗi dấu ' hay "
Vậy dùng hàm addslashes() để chống hack chỉ dành cho mảng $_GET thôi ah? Có phải phiên bản PHP nào cũng thế hay không?
Bài liên quan
tuy nhiên việc thêm ký tự đó vào hay ko thì có thể chỉnh file config của PHP, vì thể thỉnh thoảng có thể gặp 1 số host ko tự thêm \ vào (hiếm)
Nếu = true thì khỏi cần dùng addslashes()
Nếu = false thì cần addslashes()
Trước kia đọc code phpbb thấy phiên bản php 6 dev thì không có chuyện thêm vào ký tự \
Mấy cái open source, framework ... hình như đa phần thấy người ta toàn kiểm tra để đưa giá trị _POST với _GET về nguyên thủy tức là không có ký tự \ sau " hay ' (nếu server tự động thêm vào), rồi sau đó tùy trường hợp mà nó xử lý
=))
<?php
function _stripr(&$value) {
$value=is_array($value)?array_map('stripr', $value):stripslashes($value);
return $value;
}
if((function_exists("get_magic_quotes_gpc") and get_magic_quotes_gpc()) or (ini_get('magic_quotes_sybase') and (strtolower(ini_get('magic_quotes_sybase'))!='off'))) {
_stripr($_GET);
_stripr($_POST);
_stripr($_COOKIE);
}