Php'de xss açığı kapatma
Merhaba arkadaşlar. Yaptığım web sitesinde xss açığı var ve kapatmak istiyorum. Şimdi benim takıldığım kısım bu açığı kapatmak için örneğin $_POST["veri"] diye post aldığımızı varsayalım. Bunu htmlspecialchars($_POST["veri"]) şeklinde kullansam xss açığını kapatmak için yeterli midir? Örneğin bu veriyi veritabanında bu şekilde filtreleyerek kaydetsem tekrar echo ile ekrana bastırırkende bu fonksiyonu kullanmam gerekir mi?
Kısaca htmlspecialchars ile veriyi veritabanına kaydetmeden filtrelersem tekrar ekrana basarken başka bir işlem yapmam gerekir mi?
"public function getSecurity($data) {
if (is_array($data)) {
$variable=array_map('htmlspecialchars',$data);
$response =array_map('stripslashes',$variable);
return $response;
}
else {
$variable=htmlspecialchars($data);
$response =stripslashes($variable);
return $response;
}
}"
zamanında böyle bir fonksiyon ile sorunu çözmüştüm.
Kullanımına örnek vermek gerekirse.
" if (isset($_POST['save'])) {
if ($_POST['save'] == 1001) {
$title = $_POST['titles'];
$description = $_POST['description'];
$addate = date('Y-m-d H:i:s');
$statu = $_POST['statu'][0];
$sql = "INSERT INTO vt_Name( titles, description, addate, user_id, statu) VALUES(?,?,?,?,?)";
$args = [$title, $description, $addate, $user_id, $statu];
$result = $adminclass->getSecurity($args);
print $adminclass->pdoInsert($sql, $result);
}
}"
Burda yapılan $sql den gelen $args değişkenlerini getSecurity fonksiyonundan geçirip veritabanı saldırılarını veritabanı şişmesini engellemek.
ben bu şekilde kullanıyordum seninde işini çözmene yardımcı olur belki.