Dosya Güvenliği Temelleri: Python, PHP ve ASP ile Uygulamalı Rehber

Dosya güvenliği, özellikle kullanıcı verileri ve kritik bilgilerin saklandığı dosyaların korunması açısından oldukça önemlidir. Web uygulamaları, mobil uygulamalar ve sunucu tarafı yazılımlarında dosya güvenliği sağlanmadığı takdirde, ciddi güvenlik açıkları oluşabilir.

Dosya Güvenliği Nedir?

Dosya güvenliği, dosyaların yetkisiz erişimlerden korunmasını, veri bütünlüğünün sağlanmasını, gizliliğin korunmasını ve dosyaların bütünlüklerinin izlenmesini amaçlar. Bu, uygulama geliştirme sürecinde kritik bir unsurdur. Dosya güvenliği, doğru erişim izinleri, şifreleme, güvenli yükleme ve düzenli denetimler gerektirir.

Python ile Dosya Güvenliği

Python’da dosya güvenliğini sağlamak için dosya erişim izinlerini, şifrelemeyi ve güvenli dosya işlemlerini doğru şekilde kullanmak gerekir.

1. Dosya Erişim İzinleri

Dosyalarınıza sadece yetkili kullanıcıların erişmesini sağlamak için doğru erişim izinlerini ayarlamak önemlidir. Python’da dosya erişim izinlerini ayarlamak için os.chmod() fonksiyonu kullanılabilir.

1import os
2
3dosya = "gizli_dosya.txt"
4
5# Dosya izni ayarlama: Sadece sahibi okuyabilir ve yazabilir
6os.chmod(dosya, 0o600) # Sadece dosya sahibi okuma ve yazma iznine sahip
Bu, dosyanın yalnızca dosya sahibinin erişimine açılmasını sağlar. İzinlerin doğru bir şekilde ayarlandığından emin olun.

2. Dosya Şifreleme

Dosya içeriğini şifrelemek, dosyanın sadece doğru anahtara sahip kişiler tarafından erişilebilir olmasını sağlar. Python'da cryptography gibi kütüphanelerle dosya şifreleme yapılabilir.

1from cryptography.fernet import Fernet
2
3# Anahtar oluşturma
4anahtar = Fernet.generate_key()
5fernet = Fernet(anahtar)
6
7# Dosyayı şifreleme
8with open("gizli_dosya.txt", "rb") as dosya:
9dosya_verisi = dosya.read()
10
11sifreli_veri = fernet.encrypt(dosya_verisi)
12
13with open("gizli_dosya_sifreli.txt", "wb") as sifreli_dosya:
14sifreli_dosya.write(sifreli_veri)
Şifreleme anahtarını güvenli bir şekilde sakladığınızdan emin olun, aksi takdirde verileriniz erişilemez hale gelebilir.

PHP ile Dosya Güvenliği

PHP’de dosya güvenliği sağlamak için dosya izinlerini doğru şekilde ayarlamak, dosya yükleme sırasında güvenliği artırmak ve verileri şifrelemek gibi yöntemler kullanılabilir.

1. Dosya Yükleme Güvenliği

Web uygulamalarında dosya yüklemeleri sıkça yapılır, ancak güvenlik riskleri oluşturabilir. Yüklenen dosyaların türünü ve boyutunu kontrol etmek önemlidir.

1<?php
2if ($_SERVER['REQUEST_METHOD'] == 'POST') {
3if (isset($_FILES['dosya'])) {
4$dosya_adı = $_FILES['dosya']['name'];
5$dosya_geçici = $_FILES['dosya']['tmp_name'];
6$dosya_boyut = $_FILES['dosya']['size'];
7$dosya_tipi = $_FILES['dosya']['type'];
8
9// Dosya türünü kontrol et
10$izinli_turler = ['image/jpeg', 'image/png', 'application/pdf'];
11if (!in_array($dosya_tipi, $izinli_turler)) {
12die("Yalnızca JPEG, PNG veya PDF dosyaları yüklenebilir.");
13}
14
15// Dosya boyutunu kontrol et
16if ($dosya_boyut > 5 * 1024 * 1024) { // 5 MB
17die("Dosya boyutu 5 MB'yi aşamaz.");
18}
19
20// Dosya yükle
21$hedef_dizin = 'uploads/';
22move_uploaded_file($dosya_geçici, $hedef_dizin . basename($dosya_adı));
23echo "Dosya başarıyla yüklendi!";
24}
25}
26?>
Dosya yükleme işlemi sırasında yalnızca güvenli dosya türlerine izin verin. Ayrıca, dosya boyutunu sınırlandırmak önemlidir.

2. Dosya Erişim İzinleri

PHP’de dosya erişim izinlerini ayarlamak için chmod() fonksiyonu kullanılabilir. Bu, dosyanın yalnızca yetkili kullanıcılar tarafından okunabilmesini sağlar.

1<?php $dosya = "gizli_dosya.txt"; chmod($dosya, 0600); // Sadece dosya sahibi okuma ve yazma iznine sahip ?>

ASP (Classic ASP) ile Dosya Güvenliği

Classic ASP’de dosya güvenliğini sağlamak için dosya erişim izinleri, güvenli dosya yükleme ve şifreleme tekniklerini kullanabilirsiniz.

1. Dosya Yükleme Güvenliği

ASP’de dosya yükleme işlemi sırasında dosya türünü ve boyutunu kontrol etmek önemlidir.

1<%
2If Request.TotalBytes > 0 Then
3Dim dosya, dosyaAdi, dosyaTipi, dosyaBoyutu
4dosyaAdi = Request.Files("dosya").FileName
5dosyaTipi = Request.Files("dosya").Type
6dosyaBoyutu = Request.Files("dosya").Size
7
8' Dosya türü kontrolü
9If dosyaTipi <> "image/jpeg" And dosyaTipi <> "image/png" Then
10Response.Write "Yalnızca JPEG veya PNG dosyaları yüklenebilir."
11Exit Sub
12End If
13
14' Dosya boyutu kontrolü
15If dosyaBoyutu > 5 * 1024 * 1024 Then
16Response.Write "Dosya boyutu 5MB'dan büyük olamaz."
17Exit Sub
18End If
19
20' Dosyayı yükle
21dosya = Server.MapPath("uploads/") & dosyaAdi
22Request.Files("dosya").SaveAs dosya
23
24Response.Write "Dosya başarıyla yüklendi."
25End If
26%>




konu hakkında tepkinizi verebilirsiniz