🇹🇷
Merhaba!
SQL Düzenleyicisi
  • 🥳Merhaba!
  • 🔃API
    • API'ler
      • Alan Adı Sorgulama WHOIS API
      • İp Adresi Sorgulama API
      • Rastgele Kedi Resmi Gösteren API
      • Lokasyon
        • Ülkeler API
        • Şehirler API
      • T.C. Kimlik Doğrulama API
  • Hosting Solution
    • Cyberpanel
      • 500 Internal Server Hatası (Cyberpanel)
  • 🐻‍❄️LARAVEL
    • Laravel Projesi Oluşturma
    • Anasayfa Düzenleme ve Sayfa Ekleme
  • 🔳ERP TARAFI
    • ERP Nedir ?
    • ERP İş Süreçleri
    • Birimler
      • Üretim
      • Satış
      • Muhasebe
      • Stok Yönetimi
      • Mali Yönetimi
      • Müşteri Hizmetleri (Destek)
      • İnsan Kaynakları (Personel)
      • Proje Yönetimi
    • Kullanılan Terimler
      • Amortisman
  • 💻SQL Tarafı
    • Çalışmalar ve Notlar
      • Tablo Boyutlarını Öğrenme
      • Veritabanı Arası Sorgulama
      • Tabloların Satır Sayısını Bulma
      • Tablodaki Triggerları Açma&Kapatma
      • Tablo Bağlantısı (Tablo Bağlama)
      • Tabloların Satır Sayısını Bulma
    • Konular
      • Sorgulamalar
        • SELECT
        • FROM
        • WHERE
        • LIKE
        • JOINLER
          • INNER JOIN
          • FULL OUTER JOIN
          • RIGHT JOIN
          • LEFT JOIN
        • GROUP BY
        • HAVING
        • ORDER BY
        • LIMIT
        • COUNT
        • SUM
        • AVG
        • MIN
        • MAX
        • CASE
        • DISTINCT
        • SUBQUERY
        • SUBSTRING
        • TRUNCATE
      • String Fonksiyonlar
        • LEN
        • STRING_SPLIT
        • CHARINDEX
        • SUBSTRING
        • REPLACE
        • LOWER/UPPER
        • TRIM
        • LEFT/RIGHT
        • ASCII/CHAR
        • CONCAT
      • Zaman Fonksiyonları
        • DAY, MONTH, YEAR
        • DATEFROMPARTS
        • ISDATE
        • DATEADD
        • DATENAME
        • DATEPART
        • DATETIME
        • DATEDIFF
      • Matematiksel Fonksiyonlar
        • ROUND
        • FLOOR
        • DEGRESS
        • ACOS
        • ASIN
        • ATAN
        • ATN2
        • RAND
        • RAD
        • ABS/SIGN
        • FLOOR/CEILING
      • Döngüler
        • FOR
        • WHILE
      • Prosedür
        • Prosedür Nasıl Yazılır
      • Trigger
        • Triger Nasıl Yazılır
      • Index
        • Index Nasıl Yazılır
      • Cursor
        • Cursor Nasıl Yazılır
      • Fonksiyon Konuları
        • User Defined Functions
        • Aggregate Functions
      • Veritipleri ve Boyutları
      • İlişkisel Veritabanı
    • Dosyalar & Kaynaklar
      • SQL Veri Tipleri
      • T-SQL Join Tipleri
      • SQL Cheat Sheet
    • SQL Hataları ve Çözümleri
      • String or binary data would be truncated
      • Subquery returned more than 1 value.
      • Conversion failed when converting from a character string to uniqueidentifier
      • The multi-part identifier could not be bound
      • Arithmetic overflow error converting numeric to data type numeric
  • 💯ANADIL
    • Anadil Nedir ?
    • Çalışmalar ve Notlar
      • Cff
        • Cff İle Adını Alıp Kodunu Yazdırma
      • Şube Kodu İşaretlendiğinde ComboBox'ın Kapatılması.
      • Parametre İşaretlendiğinde TabSheet'te ki Grid'in kapatılması.
      • İf
        • İf İle Boş Kontrol
        • İf İle Uzunluk Kontrolü
      • Grid
        • Grid PushButton Kullanımı
        • Grid Oluşturma
      • Formdaki Gride Koşul Ekleme(FTC)
      • Yetki Servisi Çağırma
      • ComboList Doldurma
    • Kütüphane
      • RS32
        • Fonksiyonlar
          • BuildInsertStm
          • BuildDeleteStm
          • BuildSelectStm
          • BuildUpdateStm
          • PrepareStmDirect
          • ExecuteStmDirect
        • Metotlar
          • AddOrderBy
          • AddGroupBy
          • AppendToStm
      • CFF
        • Fonksiyonlar
        • Metotlar
      • Kontrol Nesneleri
        • ListBox ve ComboBox
          • AddToList
          • SelectTextInList
      • Diğer
        • IsNull
  • 🔬.NET TARAFI
    • .NET Nedir ?
    • Konular
      • Değişkenler
        • Boolean (Bool)
        • Byte
        • Char
        • Integer (INT)
        • Long
        • Single
        • Double
        • Decimal
        • String
        • Object
  • 😎PHP TARAFI
    • PHP Nedir ?
    • Konular
      • Temel Söz Dizimi
        • Değişkenler
        • Operatörler
        • Koşullar
        • Fonksiyonlar
        • Döngüler
        • Diziler
        • String İşlemleri
      • Form İşlemleri
        • Form Verilerini Alma
        • Form Verilerini Kontrol Etme
        • Form Verilerini İşleme
        • Form Alanlarına Ön Tanımlı Değerler Atama
        • Form Güvenliği
      • Veritabanı İşlemleri
        • Veritabanına Bağlanma
        • Veri Ekleme
        • Veri Sorgulama
        • Veri Güncelleme
        • Veri Silme
        • Veri Okuma
        • Transaksiyonlar
        • Veritabanı Bağlantılarını Yönetme
      • Sınıflar ve Nesneler
        • OOP İlkeleri
        • Autoloading
        • Ad alanları (Namespaces)
        • Statik Yöntemler ve Özellikler (Static Methods and Properties)
        • Soyut Sınıflar ve Yöntemler (Abstract Classes and Methods)
        • Arayüzler (Interfaces)
        • Miras (Inheritance)
        • Sınıflar ve Nesnelerin Temelleri
        • Kurucu Yöntemler
      • Güvenlik
        • SQL Enjeksiyonu
        • XSS (Cross-Site Scripting)
        • DoS (Denial of Service) Saldırıları
        • CSRF (Cross-Site Request Forgery)
        • Güvenli Parola Depolama
        • Dosya Yükleme
      • Dosya İşlemleri
      • API Entegrasyonları
        • API Nedir ?
        • RESTful API Nedir?
        • API İstekleri
        • API Yanıtları
        • API Entegrasyon Örnekleri
        • API Anahtarları
      • Framework
        • MVC Tasarım Deseni
        • Yönlendirme
        • Şablonlar
        • Veritabanı Erişimi
        • Güvenlik
        • API Entegrasyonları
        • Oturum Yönetimi
        • Test
        • Performans
        • Paket Yönetimi
  • 🎛️FRAMEWORK TARAFI
    • Framework Nedir?
    • Konular
      • Framework Türleri
      • Framework Avantajları ve Dezavantajları
      • Framework Kullanımı ve Örnekleri
      • Framework vs Kütüphane
      • Framework vs Platform
      • Framework vs API
      • Framework ve Tasarım Kalıpları
      • Framework ve MVC Mimari
      • Framework ve ORM
      • Framework ve Web Geliştirme
      • Framework ve Mobil Geliştirme
      • Framework ve Oyun Geliştirme
      • Framework ve Veri Bilimi
      • Framework ve Yapay Zeka
      • Framework Geliştirme Süreci
      • Framework Test Etme ve Hata Ayıklama
Powered by GitBook
On this page

Was this helpful?

  1. PHP TARAFI
  2. Konular
  3. Framework

Güvenlik

PHP'de kullanılan bazı popüler frameworkler, güvenlik açıklarının azaltılması için özel olarak tasarlanmıştır. Bu frameworkler, web uygulamalarınızın güvenliğini sağlamak için birçok araç ve yöntem sunarlar. Bu yazıda, Laravel Framework üzerinden güvenlik konularını ve örnekleri inceleyeceğiz.

Laravel Framework, güvenlik konusunda birçok önlem alınmış bir PHP framework'üdür. Aşağıda Laravel'de kullanılan bazı güvenlik önlemleri ve örnekleri yer almaktadır:

  1. Cross-Site Request Forgery (CSRF) Koruması: Laravel, web uygulamasında CSRF saldırılarını önlemek için özel bir token sistemi kullanır. Bu token, form sunucuya gönderildiğinde kontrol edilir ve eşleşmiyorsa form işlenmez.

Örnek: Laravel'de CSRF koruması kullanmak için, Blade şablon motorunda form oluştururken @csrf direktifini kullanmanız yeterlidir. Bu direktif, formun içinde gizli bir CSRF token alanı oluşturur.

<form method="POST" action="/example">
    @csrf
    <!-- form alanları -->
</form>
  1. SQL Injection Koruması: Laravel, veritabanı sorgularında SQL injection saldırılarını önlemek için PDO parametre bağlama kullanır. Bu yöntem, SQL sorgularında kullanılan değişkenlerin güvenli bir şekilde yerleştirilmesini sağlar.

Örnek: Laravel'de SQL injection koruması kullanmak için, sorgularda PDO parametre bağlama yöntemini kullanmanız yeterlidir. Örneğin, aşağıdaki örnekte "users" tablosundan "name" sütununda "John" olan kullanıcıları seçmek istediğimizde PDO parametre bağlama yöntemini kullanarak güvenli bir sorgu oluşturabiliriz.

$users = DB::select('SELECT * FROM users WHERE name = ?', ['John']);
  1. Güvenli Parola Depolama: Laravel, kullanıcıların şifrelerini güvenli bir şekilde saklamak için PHP password_hash ve password_verify fonksiyonlarını kullanır. Bu yöntem, kullanıcı şifrelerini veritabanında depolarken şifrelerin salt'lanmasını ve hash'lenmesini sağlar.

Örnek: Laravel'de güvenli parola depolama kullanmak için, kullanıcının şifresini kaydederken password_hash fonksiyonunu kullanmanız yeterlidir. Aşağıdaki örnekte, "password" alanına kullanıcının şifresinin hash'lenmiş halini kaydediyoruz.

$password = password_hash($request->input('password'), PASSWORD_DEFAULT);

$user = new User;
$user->name = $request->input('name');
$user->email = $request->input('email');
$user->password = $password;
$user->save();

Yukarıda bahsedilen güvenlik önlemleri, Laravel Framework'ün bazı dışında PHP'de kullanılan diğer frameworklerde de genellikle benzer şekilde kullanılır. Bununla birlikte, her framework'ün kendi güvenlik özellikleri ve yöntemleri de olabilir. Bu nedenle, seçtiğiniz framework'ün güvenlik özelliklerini mutlaka incelemeniz ve uygulamanız gerekmektedir.

Ayrıca, web uygulamalarının güvenliği sadece framework'ün sağladığı önlemlerle sınırlı değildir. Web uygulamanızın güvenliğini artırmak için aşağıdaki bazı önlemleri de almanız önerilir:

  1. Veri Doğrulama: Kullanıcı tarafından sağlanan tüm verilerin doğrulanması ve filtrelenmesi gereklidir. Bu, kullanıcıların web uygulamanıza kötü amaçlı veriler göndererek uygulamanıza zarar vermelerini önler.

  2. Güvenli Parola Politikaları: Kullanıcıların güçlü şifreler kullanmalarını sağlayacak politikaları uygulamalısınız. Şifrelerin sık sık değiştirilmesi ve birden fazla faktörlü kimlik doğrulama kullanılması da önerilir.

  3. Güncellemeleri Takip Etme: Framework'ünüzün ve kullandığınız tüm paketlerin güncel kalması önemlidir. Bu, güncellemelerdeki güvenlik açıklarının kapatılmasını ve uygulamanızın daha güvenli hale getirilmesini sağlar.

  4. Güvenliği Test Etme: Uygulamanızın güvenliğini düzenli olarak test etmelisiniz. Bu, uygulamanızdaki güvenlik açıklarının tespit edilmesini ve kapatılmasını sağlar.

Sonuç olarak, web uygulamalarının güvenliği, birçok faktöre bağlıdır ve sadece framework'ün sağladığı önlemlerle sınırlı değildir. Bu nedenle, web uygulamanızın güvenliği için gerekli tüm önlemleri almanız ve düzenli olarak güncellemeleri takip etmeniz önemlidir.

Last updated 2 years ago

Was this helpful?

😎