24 Temmuz 2021 Cumartesi

PHP ile Güvenli Kod Geliştirme


 


Her ne kadar güvenli kod yazmayı önem vererek yapan yazılımcılar olsa da bir o kadar da önemsemeyerek parası için yapan kişiler mevcut ilerleyen zamanlarda bir script yazdıracağınızda bu konu işinizi görür dikkatli inceleyin mağdur olmayın :) bu başlık altında kodlama yaparken dikkatten kaçan ufak ama bir o kadar tehlikeli açıklardan bahsedeceğiz. Benim unuttuğum yer vermediğim & veremediğim açıkları bildirmek için hiç çekinmeyin bir cevapta siz ekleyin neyse konumuza geçelim



1. Güvenli Veri Ekleme & Çekme


PHP'de veri ekleme yada çekme işlemi çok basittir ama doğru şekilde ayarlanmadığı taktirde SQL Injection diye tabir ettiğimiz güvenlik zafiyetini yaratır ( Örnek bir açıktan bahsedilmiştir ) ve verilerin 3. kişilerin eline geçmesine olasılık sağlar bu açıktan nasıl korunabiliriz


1.1 PDO Kullanma


Konumda PDO'ya yer vermiyeceğim nedeni ise daha önceki bir yazımda buna değindim konuya ulaşmak için TIKLA


1.2 Zararlı Kod parçacıklarını engelleme


Zararlı kodları engellemek için bir çok fonksiyon vardır benim paylaştığım kod


FUNCTION.PHP


<?php


function cleanInput($input) {


    $search = array(

      '@<script[^>]*?>.*?</script>@si', // Strip out javascript

      '@<[\/\!]*?[^<>]*?>@si', // Strip out HTML tags

      '@<style[^>]*?>.*?</style>@siU', // Strip style tags properly

      '@<![\s\S]*?--[ \t\n\r]*>@' // Strip multi-line comments

    );

  

    $output = preg_replace($search, '', $input);

    return $output;


}


function sanitize($input) {

  

    if (is_array($input)) {

        foreach($input as $var=>$val) { $output[$var] = sanitize($val); }

    } else {

        if (get_magic_quotes_gpc()) { $input = stripslashes($input); }

        $input = cleanInput($input);

        $output = mysql_real_escape_string($input);

    }

    return $output;


}


?>



<?php


$bad_string = "Hello! <script src='siteadresi.com/bad_script.js'></script> It's a good day!";

$good_string = sanitize($bad_string); // $good_string sonuç olarak "Hello! It\'s a good day!" verisini döner.

// Bu metodu ayrıca POST ve GET isteklerinde de kullanabilirsiniz.

$_POST = sanitize($_POST);

$_GET = sanitize($_GET);


?>

0 comments:

Yorum Gönder