Best Studio 1
Best Studio
D 1
delimuratt
Aliyldrim 1
Aliyldrim
Mt2Hizmet 1
Mt2Hizmet
noisiv 1
noisiv
Manwe Work 1
Manwe Work
melankolıa18 1
melankolıa18
Agora Metin2 1
Agora Metin2
Cannn6161 1
Cannn6161
kralhakan2009 1
kralhakan2009
Vahsi Uzman 1
Vahsi Uzman
Hikaye Ekle
Reklam vermek için turkmmo@gmail.com

PHP 8 ile Güvenli Web Geliştirme

BGame

BGame.com.tr
Telefon Numarası Onaylanmış Üye TC Kimlik Numarası Doğrulanmış Üye
TM Üye
Katılım
12 Nis 2019
Konular
172
Mesajlar
990
Çözüm
16
Online süresi
1mo 24d
Reaksiyon Skoru
1,035
Altın Konu
18
Başarım Puanı
226
Yaş
30
MmoLira
10,349
DevLira
18
Ticaret - 100%
1   0   0

ROHAN2 WORLD 1-120 TR TİPİ OFFICIAL YOHARA, BALATHOR VE AMON! 80. GÜNÜNDE! +10.000 ONLİNE! HİLE VE BOT %100 ENGELLİ HEMEN TIKLA!

php8-thanks.png

Web güvenliği, web geliştirmenin kritik bir yönüdür ve PHP 8, web uygulamalarınızın güvenliğini artırmak için çeşitli özellikler ve en iyi uygulamalar sunar. Bu bölümde, PHP 8 kullanarak güvenli web uygulamaları oluşturmak için temel güvenlik hususlarını ve tekniklerini inceleyeceğiz.


Kullanıcı Girişini Temizleme (Sanitizing)​

Web güvenliğinin temel prensiplerinden biri, kullanıcı girişine asla güvenmemektir. Form gönderimleri gibi kullanıcılardan alınan tüm veriler potansiyel olarak kötü amaçlı kabul edilmelidir. PHP 8, kullanıcı girişini temizlemek ve doğrulamak için htmlspecialchars ve filter_input gibi işlevler sağlar. Bu işlevler, Siteler Arası Betik Çalıştırma (XSS) saldırıları gibi yaygın güvenlik açıklarını önlemeye yardımcı olur.

Kod:
// htmlspecialchars kullanarak kullanıcı girişini temizleme
$userInput = $_POST['input_field'];
$sanitizedInput = htmlspecialchars($userInput, ENT_QUOTES, 'UTF-8');

Veritabanı Sorguları için Hazırlanmış İfadeler (Prepared Statements)​

SQL Enjeksiyonu, web uygulamalarında yaygın bir saldırı vektörüdür. PHP 8, veritabanı sorgularını güvenli bir şekilde yürütmek için PDO veya MySQLi ile hazırlanmış ifadelerin kullanılmasını teşvik eder. Hazırlanmış ifadeler, SQL kodunu kullanıcı girişinden ayırarak, kötü amaçlı girişin sorgunun yapısını değiştirmesini engeller.

Kod:
// PDO ile hazırlanmış ifadeler kullanma
$pdo = new PDO("mysql:host=localhost;dbname=mydb", $username, $password);
$stmt = $pdo->prepare("SELECT * FROM users WHERE username = :username");
$stmt->bindParam(':username', $userInput);
$stmt->execute();

Siteler Arası İstek Sahteciliği (CSRF) Koruması​

CSRF saldırılarına karşı korunmak için, PHP geliştiricileri CSRF belirteçleri (token) oluşturabilir ve doğrulayabilir. Bu belirteçler her kullanıcı oturumu için benzersizdir ve formlara dahil edilir. Form gönderildiğinde, sunucu isteğin aynı siteden kaynaklandığından emin olmak için belirtecin geçerliliğini kontrol eder.

Kod:
// CSRF belirteçlerini oluşturma ve doğrulama
session_start();
if (!isset($_SESSION['csrf_token'])) {
    $_SESSION['csrf_token'] = bin2hex(random_bytes(32));
}

if (isset($_POST['csrf_token']) && $_POST['csrf_token'] === $_SESSION['csrf_token']) {
    // Formu işle
} else {
    // Geçersiz CSRF belirteci
    die("CSRF tespit edildi. İstek reddedildi.");
}

Parola Hashing (Özetleme)​

Kullanıcı parolalarını güvenli bir şekilde depolamak çok önemlidir. PHP 8, parolaları bcrypt veya diğer güçlü algoritmalar kullanarak güvenli bir şekilde özetlemek için password_hash işlevini içerir. Ayrıca, oturum açma sırasında kullanıcı tarafından girilen parolaları doğrulamak için password_verify işlevi kullanılabilir.

Kod:
// Parolaları özetleme ve doğrulama
$password = $_POST['password'];
$hashedPassword = password_hash($password, PASSWORD_BCRYPT);

if (password_verify($password, $hashedPassword)) {
    // Parola geçerli
} else {
    // Parola geçersiz
}

İçerik Güvenliği Politikası (CSP)​

Bir İçerik Güvenliği Politikası (CSP) uygulamak, Siteler Arası Betik Çalıştırma (XSS) saldırıları riskini azaltmanın etkili bir yoludur. PHP 8 web uygulamaları, tarayıcıya hangi betiklerin ve kaynakların çalıştırılmasına izin verildiğini bildirmek için CSP başlıkları gönderebilir. Bu, sayfaya enjekte edilen kötü amaçlı betiklerin çalışmasını önlemeye yardımcı olur.

Kod:
// İçerik Güvenliği Politikası başlıklarını ayarlama
header("Content-Security-Policy: default-src 'self'");

Düzenli Güncellemeler ve Güvenlik Yamaları​

PHP sürümünüzü, web sunucunuzu ve tüm kütüphanelerinizi güncel tutmak güvenlik için hayati öneme sahiptir. PHP 8 geliştiricileri, bilinen güvenlik açıklarına karşı korunmak için düzenli olarak güvenlik güncellemelerini kontrol etmeli ve bunları derhal uygulamalıdır.


Güvenli Dosya Yüklemeleri​

Web uygulamanız dosya yüklemelerine izin veriyorsa, yüklenen dosyaları güvenli bir şekilde doğrulamak ve depolamak için katı güvenlik önlemleri uygulayın. Kötü amaçlı yüklemeleri önlemek için dosya türlerini sınırlayın, sunucu tarafında doğrulama yapın ve benzersiz dosya adları kullanın.

Kod:
// Güvenli dosya yüklemeleri
$targetDirectory = "uploads/";
$targetFile = $targetDirectory . basename($_FILES["file"]["name"]);

if (move_uploaded_file($_FILES["file"]["tmp_name"], $targetFile)) {
    // Dosya başarıyla yüklendi
} else {
    // Dosya yükleme başarısız oldu
}

Sonuç olarak, PHP 8 web uygulamaları oluştururken güvenli web geliştirme uygulamaları kritik öneme sahiptir. Kullanıcı girişini temizleme, hazırlanmış ifadeler kullanma, CSRF koruması uygulama ve diğer güvenlik önlemlerini uygulama gibi bu güvenlik hususlarını takip ederek, geliştiriciler yaygın güvenlik tehditlerine ve güvenlik açıklarına karşı dayanıklı web uygulamaları oluşturabilirler. PHP 8 web uygulamalarınızın güvenliğini sürdürmek için düzenli olarak güncelleme yapmak ve güvenlik en iyi uygulamaları hakkında bilgi sahibi olmak esastır.
 
Paylaşım için teşekkürler :)
 
Eline sağlık! Paylaşım için teşekkürler.
 

Şu an konuyu görüntüleyenler (Toplam : 0, Üye: 0, Misafir: 0)

Geri
Üst