Erişim kontrolü ve gizlilik

*Bu içerik, yapay zekâ (beta) kullanılarak çevrildi ve hatalar içerebilir. Sayfayı İngilizce görüntülemek için buraya tıkla.

İstemcilere görünen bilgi ve varlıkların neler olduğunu anlamak, deneyiminizinin güvenliğini ve gizliliğini korumak için kritik bir öneme sahiptir. Geliştiriciler genellikle kötü niyetli kullanıcıların ve istemcilere kopyalanan içeriklerin görünürlüğünü yeterince önemsemez. Kötü niyetli kullanıcılar, evreninizdeki tek bir yere katılabildikleri takdirde, "kısıtlı" alanlara erişim sağlayabilirler. Görünür veya şu anda kullanımda olup olmamasına bakılmaksızın, istemcilerine kopyalanmış her türlü içeriği görebilirler. Ek olarak, kötü niyetli kullanıcılar, istemcide hiçbir şekilde çalıştırılmasa bile, herhangi bir kopyalanmış yerel script'i ve ModuleScript'i de decompile edebilirler.

Evrenler içinde istemci tarafı teleporta

Bir evrenin içinde olduğunda, istemciler, tasarlanan erişim kısıtlamaları veya ilerleme kapılarını atlayarak, o evrendeki herhangi bir yere teleport olabilirler. Bu, örneğin, bir geliştirme veya aşama deneyiminden, yayımlanmamış içeriğin istenmeyen bir şekilde sızdırılmasına da yol açabilir. Şunları anlamak önemlidir:

  • "Doğrudan Erişimi" devre dışı bırakmak yalnızca web sitesinde alt alanlardan Katıl butonunu kaldırır — istemci tarafından başlatılan teleportları engellemez.
  • Kötü niyetli kullanıcıların evreninizdeki tüm alt alanların varlığını keşfedeceklerini varsayın.
  • Bir istemci, bir yere, örneğin kök alana erişim sağlıyorlarsa, tasarladığınız akışa bakılmaksızın, herhangi bir alt yere teleport olabilir.

Birçok geliştirici, yetkisiz kullanıcıları bir alt yerden atarak erişimi engellemeye çalışır. Bu, oyun akışını engellemeye yardımcı olabilir ancak, içerik istemciye kopyalanmayı engellemez, çünkü kopyalama, oyuncu katıldığında başlar ve sunucu tarafı atma mantığı çalışmadan önce gerçekleşir.

Güvenli teleportlar kullanın

Yetkisiz erişimi önlemenin en etkili yolu, Yerler için Erişim Kontrolü ayarını Yalnızca evren içinde güvenli olarak belirlemektir. Bu, tüm başlangıç yeri olmayan alanları yalnızca sunucu tarafından başlatılan teleportlarla kısıtlar, oyuncu alt yere katılmadan önce istemci tarafından başlatılan teleportları platform düzeyinde engeller. Oyuncu katılmadığı için, onlara hiçbir içerik kopyalanmaz.

İstemci tarafından başlatılan teleportları kullanan mevcut deneyimler için yapılandırma adımları ve geçiş rehberi için Yerler arası teleport bağlantısına bakın.

Kısıtlı yerler için derinlik savunması

Güvenli teleportların kullanılamadığı evrenler veya bu teleportların yanına ek bir koruma katmanı eklemek için aşağıdaki önlemleri birleştirin:

  • Geliştirme ve test alanlarını ayrı, özel evrenlerde tutun — bu, yayımlanmamış içeriğin gizliliğini sağlamak için tek güvenilir yoldur. Gizli etkinlik varlıklarını, script'lerini veya UI bileşenlerini, aktif olmaları planlandığı zamandan önce üretim ortamına gönderin.
  • Mümkünse, yeni oyunculara ne kadar dünya kopyalanacağını sınırlamak için akış (streaming) kullanın.
  • Sunucu tarafında grup rolü veya rozet doğrulaması ekleyin ve oyuncu durumu veya ilerleme gereksinimlerini doğrulayın.
  • Varsayılan olarak gelen oyuncuları reddedin. Bu, doğrulama süreci kesin olmayan bir durumda, örneğin motorun fırlattığı bir istisna durumu gibi, hiçbir oyuncunun içeri girmesini sağlamaz.
  • Mümkünse, doğrulamayı geçemeyen oyuncular için Ban API kullanın. Bu, oyuncuların aynı hesapla sürekli olarak katılmaya çalışmalarını engeller.

Kopyalama

Kopyalama, durumun motorun örnekleri arasında ağ üzerinden nasıl transfer edildiğini tarif eder. Roblox'un kopyalama modeli, birkaç önemli şekilde genellikle basitleştirilmiştir:

  • Örnekler sunucu yetkili olup, bir örneğin tüm katılımcılara (sunucu ve tüm bağlı istemciler) kopyalanabilmesi için sunucuda oluşturulması gerekir.
  • Örnek özellikleri de sunucu yetkili olup, çoğu özelliğin değişikliğinin tüm istemcilerde görünür olabilmesi için sunucuda değiştirilmesi gerekir.
  • Genel olarak, bir örnek ya tüm bağlı istemcilere ya da hiçbirine kopyalanmaktadır. Akış (streaming) gibi bazı istisnalar bulunmaktadır.

Kopyalama konteynırları, istemcilere kopyalanan üst düzey örneklerdir (DataModel altında). Eğer bir örnek, yaşamı boyunca bir kopyalama konteynırının alt öğesi haline gelirse, durumunun büyük bir kısmının tüm istemcilere kopyalanacağını beklemelisiniz. Kopyalama konteynırları hakkında daha fazla bilgi için Veri modeli kılavuzu bağlantısına bakabilirsiniz. Şüphe durumunda, her zaman Play Solo gibi bir test ortamında bir örneğin veya özelliğin nasıl kopyalandığını kontrol edebilirsiniz. Test modları hakkında daha fazla bilgi için Studio test modları bağlantısını ziyaret edebilirsiniz.

Kopyalamanın güvenlik sonuçları

İstemciye kopyalanan herhangi bir içerik, kötü niyetli bir kullanıcı tarafından çıkarılabilir ve veri madenciliği yapılabilir. Genel bir kural olarak, herhangi bir gizli içeriği canlı üretim ortamına yayınlamaktan ya da göndermekten kaçının, ancak kullanıcılar tarafından görülebilmesi için hemen hazır olduğunuzdan emin olun. İçeriğin yayınlanmasını veya erişimini geciktiren bir mantık dahi varsa, kötü niyetli kullanıcıların içeriklerinizi bulacağı ve sızdıracağı varsayılmalıdır.

Hassas örnekler için aşırı derecede tanımlayıcı veya tahmin edilebilir adlardan kaçının, bunlar script'ler, remotes ve modeller gibi olmakla birlikte sınırlı değildir. Tahmin edilebilir bir DataModel hiyerarşisine sahip olmak, kötü niyetli kullanıcıların exploit geliştirmesini kolaylaştırır.

Script decompilasyonu

Kopyalandıktan sonra kötü niyetli bir kullanıcı tarafından decompile edilebilen herhangi bir LocalScript, Script veya ModuleScript, eğer kopyalandıysa, istemcide hiçbir şekilde çalıştırılmasa bile decompile edilebilir. Sunucuya özel Script'ler ve ModuleScript'ler, istemcilere kopyalanmadıkları için ServerStorage veya ServerScriptService içinde decompile edilemez.

Aynı script içinde sunucuya özel ve istemciye özel kod içeren bir ModuleScript yazmak önerilmez, çünkü sunucu tarafı mantığı decompile edildiğinde ortaya çıkacak ve exploit için hataların daha kolay bir şekilde çözülmesine olanak sağlayacaktır.

Orijinal ModuleScript in ReplicatedStorage

local module = {}
local Remote = script:WaitForChild("RemoteEvent")
-- Kaçınılması gereken bir paradigmaya örnek
-- Server kodunu Script örneklerinde veya ServerStorage/ServerScriptStorage içinde tutun!
if game:GetService("RunService"):IsServer() then
function module:DoServerThing(password)
if password == "SecretPassword" then
print("gizli sunucu kodu")
end
end
Remote.OnServerEvent:Connect(function(player, password)
module:DoServerThing(password)
end)
else
function module:DoServerThing(password)
Remote:FireServer(password)
end
end
return module
Decompile sonucu

local table1 = {};
local RemoteEvent = script:WaitForChild("RemoteEvent");
if game:GetService("RunService"):IsServer() then
function table1.DoServerThing(_, p2) -- Satır: 9
if p2 == "SecretPassword" then
print("gizli sunucu kodu");
end
end
RemoteEvent.OnServerEvent:Connect(function(player: Player, p3) -- Satır: 15
--[[
Yükseltmeler:
[1] = table1
--]]
table1:DoServerThing(p3);
end);
return table1;
end
function table1.DoServerThing(_, p1) -- Satır: 19
--[[
Yükseltmeler:
[1] = RemoteEvent
--]]
RemoteEvent:FireServer(p1);
end
return table1;

Yukarıda gösterildiği gibi, decompile işlemi sunucu tarafı mantığını, sabit kodlu şifreleri, iş kurallarını ve kötü niyetli kullanıcıların zayıf noktaları analiz edebileceği uygulama detaylarını ortaya çıkarmaktadır.

Gizlilik ihlallerinin etkisi

Gizlilik ihlallerinin önemli sonuçları olabilir, bunlar arasında:

  • İçerik sızıntıları: Yayınlanmamış eşyalar, haritalar veya özellikler resmi duyurulardan önce keşfedilip kamuya paylaşılabilir.
  • Rekabet dezavantajı: Mekanikler, algoritmalar veya yaklaşan özellikler rakipler tarafından tersine mühendislik ile ortaya çıkarılabilir.
  • Exploit geliştirme: Açık sunucu mantığı, kötü niyetli kullanıcıların zayıf noktaları belirlemesine ve hedefli saldırılar geliştirmesine daha hızlı ve kolay bir şekilde yol açar.
©2026 Roblox Corporation. Roblox, the Roblox logo and Powering Imagination are among our registered and unregistered trademarks in the U.S. and other countries.