Python Flag ve Sql inject python fixi

  • Konbuyu başlatan Konbuyu başlatan Admin
  • Başlangıç tarihi Başlangıç tarihi
  • Cevaplar Cevaplar 0
  • Görüntüleme Görüntüleme 35

Admin

Metin2Lobby
Yönetici
Founder
Katılım
6 Mayıs 2022
Mesajlar
52,647
Ticaret : 1 / 0 / 0
Merhabalar

constınfo.py açın ve dosyanın en sonuna yapıştırın


Kod:
py_Flag = [] def GetFlag(flagname):     global py_Flag     size = 0     for i in xrange(len(py_Flag)):         if py_Flag[i]["flag"] == flagname:             size = py_Flag[i]["value"]             break     return size def SetFlag(flagname,value):     global py_Flag     bAdd = True     for i in xrange(len(py_Flag)):         if py_Flag[i]["flag"] == flagname:             py_Flag[i].update({"value":flagname,"value":int(value)})             bAdd = False             break     if bAdd:         py_Flag.append({"flag":flagname,"value":int(value)})

Bunu nasıl kullanıcaz?

Kod:
aynı questflag gibi.     constInfo.GetFlag("value")     constInfo.SetFlag("value",constInfo.GetFlag("value")+1)

Eğer karakter oyundan çıkınca ve bir yere ışınlanınca flagları silmek istenler bunu yapsın.
Game.py aç ve Close fonksiyonunu bul bunu yapıştır altına.

Kod:
constInfo.py_Flag.clear()

#######################################################################################################

Sql injection fix python
constInfo.py aç ve dosyanın en sonuna ekle

Kod:
def GetInjectText(text):     characters = ["SELECT","TRUNCATE","INSERT","REPLACE","DELETE",'/', '>', '<', '|', ';', ':', '}', '{', '[', ']', '%', '#', '@', '^','&']     succes = False     for j in xrange(len(characters)):         if text.find(characters[j]) != -1:             succes = True             break     return succes

Bu fonksiyonun kullanımı böyle

Kod:
def __SendShoutChatPacket(self, text):     if constInfo.GetInjectText(text):        chat.AppendChat(chat.CHAT_TYPE_INFO, " SQL INJECT")        return

Bu inject önlemlerini chat, offshop ismi, lonca yorum, messenger gibi yerlere önlem olarak koyabilirsiniz.
Saygılar - dracaryS




Python Flag ve SQL Injection Fix: Metin2 Sunucularında Güvenlik Arttırımı

Python tabanlı Metin2 özel sunucularında güvenlik açıklarının kapatılması, hem oyuncu verilerinin korunması hem de sunucu kararlılığının sağlanması açısından büyük önem taşır. Bu makalede, Python Flag kullanımı ve SQL Injection açıklarının giderilmesine yönelik güvenli kodlama yöntemlerinden bahsedeceğiz.

Python Flag Nedir?
Python Flag, Metin2 özel sunucularında sunucu tarafında çalışan Python betiklerinde belirli izinleri kontrol etmek için kullanılan yapılandırılmış bir güvenlik mekanizmasıdır. Özellikle yetkisiz erişimleri veya kötü niyetli komut girişlerini engellemek için kullanılır. Flag'ler, kullanıcıların belli komutları veya fonksiyonları çalıştırabilmesi için gerekli izni taşıyıp taşımadığını denetler. Bu sayede sunucu üzerinde güvenlik açıkları oluşmasını engelleriz.

SQL Injection Nedir ve Neden Tehlikeli?
SQL Injection, saldırganların veritabanına doğrudan sorgular göndererek sistemde yetkisiz işlemler yapmasına neden olan ciddi bir güvenlik zafiyetidir. Metin2 sunucularında, özellikle hesap oluşturma, envanter işlemleri, item yönetimi gibi işlemlerde bu tür açıklar olabilir. Eğer kullanıcıdan gelen veriler doğrudan SQL sorgusuna dahil edilirse, saldırgan ' OR 1=1 -- gibi ifadelerle tüm kullanıcıları listelemek veya yetki yükseltimi yapmak gibi zararlı eylemlerde bulunabilir.

SQL Injection Fix Uygulamaları
Python tarafında SQL injection'a karşı alınabilecek en temel önlem, kullanıcıdan gelen verileri doğrudan sorguya dahil etmektense parametreli sorgular (prepared statements) kullanmaktır. Örneğin:

Kod:
cursor.execute('SELECT * FROM account WHERE login = %s AND password = %s', (username, password))

Bu kullanım, kullanıcı tarafından girilen ifadelerin SQL komutu olarak değil, sadece veri olarak değerlendirilmesini sağlar. Böylece saldırganın SQL komutu yerleştirmesi engellenir.

Python Flag Kullanımı ve Güvenlik Katmanları
Metin2 sunucularında Python betiklerinde komut çalıştırma veya veri değiştirme işlemleri yapılırken, flag kontrolleri ile bu işlemlerin yalnızca yetkilendirilmiş kullanıcılar tarafından yapılmasını sağlayabiliriz. Örneğin, admin komutlarını çalıştırmak isteyen bir oyuncunun flag'inde admin yetkisi olup olmadığını kontrol eden bir yapı şu şekildedir:

Kod:
if player.has_flag('admin'): [BR][/BR]    execute_admin_command()[BR][/BR]else:[BR][/BR]    log_hack_attempt()

Python GUI ve Veri Giriş Kontrolleri
Metin2 özel sunucularında Python GUI ile yapılan arayüzlerde de kullanıcıdan alınan verilerin filtrelenmesi büyük önem taşır. Özellikle item adları, mesajlar veya komutlar gibi alanlar doğrudan sunucu tarafına aktarılırken, özel karakterlerden arındırılma işlemi yapılmalıdır. Bu tür alanlar için input sanitization (girdi temizleme) süreçleri tanımlanmalı ve SQL Injection, XSS gibi saldırılar için önleyici tedbirler alınmalıdır.

Sunucu Tarafında Güvenlik Duvarı
Metin2 sunucularında Auth ve Game sunucularında çalışan Python betiklerinde, veri akışları dikkatlice izlenmeli ve şüpheli girişler için otomatik loglama ve engelleme mekanizmaları kurulmalıdır. Özellikle birden fazla istek yapan IP adreslerine karşı sınırlamalar getirilebilir. Ayrıca, sunucu loglarında SQL sorgusu gibi yapıların analizi ile potansiyel tehditler önceden fark edilebilir.

Sonuç
Python Flag ve SQL Injection fix işlemleri, Metin2 özel sunucularında güvenliği artırmak için atılması gereken temel adımlardandır. Yetki denetimleri, veri girişi kontrolleri ve parametreli sorgular kullanarak sunucu güvenliğini ciddi anlamda artırabilirsiniz. Bu tür güvenlik önlemleri, hem oyuncuların verilerini korur hem de sunucunuzun uzun süreli kararlılığını sağlar.


Python Flag and SQL Injection Fix: Security Enhancement in Metin2 Private Servers

Securing Python-based Metin2 private servers is critical for protecting user data and ensuring server stability. In this article, we will discuss secure coding practices related to Python Flag usage and fixing SQL Injection vulnerabilities.

What is Python Flag?
Python Flag is a structured security mechanism used in Metin2 private servers to control permissions within server-side Python scripts. It helps prevent unauthorized access or malicious command executions. Flags check whether users possess the required permissions to execute specific commands or functions, thereby preventing security loopholes on the server.

What is SQL Injection and Why Is It Dangerous?
SQL Injection is a serious vulnerability that allows attackers to send direct queries to the database and perform unauthorized operations on the system. In Metin2 servers, such vulnerabilities can occur during account creation, inventory operations, item management, etc. If user inputs are directly included in SQL queries, attackers might use expressions like ' OR 1=1 -- to list all users or escalate privileges.

SQL Injection Fix Practices
The most fundamental measure against SQL injection in Python is to avoid including user inputs directly in queries and instead use parameterized queries (prepared statements). For example:

Kod:
cursor.execute('SELECT * FROM account WHERE login = %s AND password = %s', (username, password))

This ensures that user-provided inputs are treated as data rather than as part of SQL commands, preventing injection attacks.

Python Flag Usage and Security Layers
In Python scripts of Metin2 servers, flag controls ensure that only authorized users can execute commands or modify data. For instance, checking if a player has admin privileges before executing admin commands:

Kod:
if player.has_flag('admin'): [BR][/BR]    execute_admin_command()[BR][/BR]else:[BR][/BR]    log_hack_attempt()

Python GUI and Input Validation
In Python GUI interfaces of Metin2 private servers, filtering user inputs is crucial. Fields such as item names, messages, or commands must be sanitized before being sent to the server to prevent SQL Injection, XSS, and other types of attacks. Input sanitization processes should be implemented to protect against such threats.

Server-Side Security Firewall
In Python scripts running on Auth and Game servers of Metin2, data flows must be carefully monitored. Automatic logging and blocking mechanisms should be set up for suspicious entries. Rate limiting for IPs making multiple requests and analyzing logs for potential SQL query patterns can help detect threats early.

Conclusion
Implementing Python Flag checks and SQL Injection fixes are essential steps toward enhancing security in Metin2 private servers. By applying permission checks, input validation, and parameterized queries, you can significantly improve your server's security posture. These measures not only protect user data but also ensure long-term server stability.
 

Şuan Bu Konuyu Görüntüleyen Kullanıcılar (Toplam : 0, Üye : 0, Misafir : 0)

Benzer konular

Geri
Üst Alt