setApprovalForAll Açıklandı: Tüm Koleksiyonları Boşaltan NFT Onayı

— By Tony Rabbit in Tutorials

setApprovalForAll Açıklandı: Tüm Koleksiyonları Boşaltan NFT Onayı

Bir setApprovalForAll dolandırıcılığı, tek bir imza ile tüm bir NFT koleksiyonu üzerinde operatör kontrolü vermeniz için sizi kandırarak çalışır. Fonksiyonun nasıl çalıştığını, ERC-20 izinlerinden nasıl farklı olduğunu, imzalamadan önce isteği nasıl okuyacağınızı ve nasıl iptal edeceğinizi öğrenin.

Bir setApprovalForAll dolandırıcılığı, NFT koleksiyonlarının boşaltılmasının en yaygın yoludur ve neredeyse her zaman tam olarak okumadığınız tek bir imza ile başlar. setApprovalForAll fonksiyonu, ERC-721 ve ERC-1155 token özelliklerinin standart bir parçasıdır. Bunu çağırdığınızda, başka bir adresi "operatör" olarak adlandırırsınız ve bu operatöre, belirli bir koleksiyon sözleşmesinden sahip olduğunuz her NFT'yi şimdi ve gelecekte taşıma izni verirsiniz. Öğe başına bir limit ve miktar alanı yoktur. Bir saldırgan operatörünüz olarak ayarlandığında, tüm koleksiyonunuzu o sözleşmeden tek bir işlemle, tekrar imzalamanızı istemeden transfer edebilir. Bu kılavuz, bu iznin tam olarak ne işe yaradığını, bir token izninden neden mekanik olarak farklı olduğunu, kötü niyetli sitelerin isteği nasıl gizlediğini ve bunu nasıl denetleyip iptal edeceğinizi açıklar.

Temel Çıkarımlar

  • setApprovalForAll, bir operatöre tek bir öğe değil, bir sözleşmeden tüm bir NFT koleksiyonu üzerinde kontrol yetkisi verir.
  • Miktar veya tutar alanı yoktur, bu nedenle yetki, iptal edilene kadar etkili bir şekilde sınırsız ve kalıcıdır.
  • Sahte mint'ler ve sahte pazar yerleri, NFT'lerinizi "etkinleştirme" veya "listeleme" bahanesiyle bunu ister.
  • Bir operatör onayını iptal etmek, ERC-20 token izinlerini iptal etmekten ayrı bir eylemdir.

setApprovalForAll aslında ne yetki verir

setApprovalForAll iki argüman alır: bir operatör adresi ve bir boolean (doğru veya yanlış). Değeri doğru olarak ayarlanmış şekilde imzaladığınızda, NFT sözleşmesi, adı geçen operatörün o sözleşme içinde sahip olduğunuz herhangi bir token ID'si üzerinde transferFrom ve safeTransferFrom çağrılarını yapmasına izin verildiğini kaydeder. Bu, koleksiyon çapında bir yetkidir. Bugün bir projeden on NFT'ye sahipseniz ve gelecek ay beş tane daha mint ederseniz, operatör on beşini de yeni bir imza olmadan taşıyabilir.

Anlaşılması gereken en önemli şey şudur: onay, belirli NFT'lere değil, koleksiyon sözleşmesine ve operatöre bağlıdır. "Bu bir maymunu" onaylamıyorsunuz. "Bu operatör anahtarını elinde bulunduran herkes, bu sözleşmeden sahip olduğum her şeyi süresiz olarak alabilir" onayını veriyorsunuz. Bu, birine bir odanın ana anahtarını verip onu tutmasına izin vermenin NFT eşdeğeridir. Bu kalıcılık, setApprovalForAll'ın NFT cüzdan boşaltmalarının çoğunun arkasında olmasının nedenidir.

Bir ERC-20 harcama-sınırı izninden nasıl farklıdır

Çoğu insan "onay" kelimesiyle ilk olarak ERC-20 tokenları aracılığıyla tanışır. Orada, approve fonksiyonu bir harcama sınırı belirler: bir harcayıcının çekebileceği 100 USDC gibi sayısal bir izin. ERC-20 ile ilgili risk, dApp'lerin kolaylık sağlamak için sınırsız bir üst sınır talep ettiği sonsuz-onay modelidir. Ancak sonsuz bir ERC-20 izni bile hala tek bir token ile sınırlıdır. setApprovalForAll farklı bir risk şeklidir çünkü bir sayı değil, bir boolean anahtarıdır ve bir koleksiyondaki tüm varlıklarınızı bir kerede kapsar. Kavrama yeniyseniz, onay işlemleri kılavuzumuz temel mekanikleri daha derinlemesine ele alır.

ÖzellikERC-20 approvesetApprovalForAll (NFT)
Neyi kontrol ederBelirli bir miktara kadar tek bir token türüBir koleksiyonda tuttuğunuz her NFT
Limit alanıSayısal üst sınır (sonsuz olabilir)Yok, bu bir doğru/yanlış anahtarıdır
Gelecekteki varlıkları kapsarHayır, izinde sınırlıdırEvet, yeni mint'ler de açıktadır
Nasıl iptal edilirİzni tekrar 0'a ayarlayınsetApprovalForAll'ı yanlış ile çağırın

Sahte mint'ler ve sahte pazar yerleri bunu nasıl ister

Saldırganlar setApprovalForAll'ı nadiren bağlam dışı isterler. Bunu normal görünen bir eyleme sararlar. Ücretsiz veya indirimli bir drop vaat eden sahte bir mint sayfası, "mint"e tıkladığınız anda bir cüzdan isteği açar ve bu istek aslında zaten sahip olduğunuz bir koleksiyon üzerinde setApprovalForAll'dır. Genellikle hacklenmiş bir sosyal hesap veya ücretli bir reklam aracılığıyla duyurulan sahte bir pazar yeri klonu, bir şey listelemeden önce sizden "etkinleştirmenizi" veya "ticaret için onaylamanızı" ister. Meşru pazar yerleri setApprovalForAll kullanır ve sahte versiyonu ikna edici kılan da tam olarak budur.

Aldatma işe yarar çünkü beklediğiniz eylem (mint etme, listeleme, talep etme) makuldür ve cüzdan çoğu kullanıcının tanımadığı bir fonksiyon adı gösterir. Bu desen, kötü niyetli işlemin bariz bir transfer yerine bir onay olduğu buz oltacılığı ve daha geniş imza oltacılığı taktikleriyle büyük ölçüde örtüşür. Varlık imzalama adımı sırasında cüzdanınızdan asla ayrılmaz, bu yüzden henüz hiçbir şey çalınmış gibi görünmez. Boşaltma, operatör transferFrom'u çağırıp koleksiyonu süpürdüğünde dakikalar veya saatler sonra gerçekleşir. O zamana kadar onay zaten işini yapmıştır.

İmzalamadan önce isteği nasıl okursunuz

En iyi savunma, cüzdan istemini okumayı öğrenmektir. Bir site bir işlemi tetiklediğinde, modern cüzdanlar çağrılan sözleşme yöntemini gösterir. "setApprovalForAll" ve buna ihtiyacı olmaması gereken bir eylem için "true" olarak ayarlanmış bir parametre görürseniz, durun. Önünüzdeki işlemin gerçekten koleksiyon çapında izin gerektirip gerektirmediğini sorun. Bir airdrop talep etmek, bir galeri görüntülemek veya bir siteye bağlanmak asla bunu gerektirmemelidir.

Üç şeyi kontrol edin. Birincisi, fonksiyon adı: setApprovalForAll mı? İkincisi, operatör adresi: kullanmayı düşündüğünüz platformun doğrulanmış sözleşmesiyle eşleşiyor mu, yoksa bilinmeyen bir adres mi? Üçüncüsü, boolean: true, izin verdiğiniz anlamına gelir, false ise iptal ettiğiniz anlamına gelir. Birçok boşaltıcı site, istemi otomatik olarak tıklamanıza güvenir. Sahte bir pazar yeri de genellikle daha önce hiç etkileşimde bulunmadığınız bir sitede bir koleksiyon için onay vermenizi ister, bu güçlü bir kırmızı bayraktır. Herhangi bir şey tanıdık gelmiyorsa, isteği reddedin ve tekrar denemeden önce URL'yi bağımsız olarak doğrulayın. Bu akışların çoğu, istemi rutin göstermek için tasarlanmış hazır bir cüzdan boşaltıcı kiti tarafından desteklenmektedir.

Operatör onaylarını nasıl denetler ve iptal edersiniz

Operatör onayları, ERC-20 izinlerinden farklı bir yüzeyde bulunur, bu nedenle yalnızca token harcama limitlerini gösteren bir araç veya kontrol paneli bunları hiç göstermeyebilir. Düzgün bir denetim yapmak için, NFT operatör onaylarını açıkça listeleyen, genellikle "tümü için onaylar" olarak etiketlenmiş veya koleksiyon başına gösterilen bir iptal aracı kullanın. Cüzdanınızı okuma modunda bağlayın, bir operatörün ayarlandığı her koleksiyonu inceleyin ve tanımadığınız veya artık kullanmadığınız herhangi bir operatör adresini belirleyin.

İptal etmek için, aynı koleksiyon sözleşmesinde setApprovalForAll'ı tekrar çağırırsınız, bu sefer o operatör için boolean değerini false olarak ayarlarsınız. Bu bir zincir üstü işlemdir, bu nedenle gas maliyeti vardır ve her koleksiyon için operatör başına yapılmalıdır. Tüm sözleşmelerdeki her NFT onayını bir kerede temizleyen tek bir düğme yoktur. Adım adım iptal kılavuzumuz, hem token izinleri hem de operatör onayları için süreci gösterir. Özellikle yeni mint siteleri veya pazar yerleri kullandıktan sonra bunu tek seferlik bir temizlik değil, periyodik bir alışkanlık haline getirin.

Bilinmeyen sözleşmeleri toplu olarak onaylamaktan kaçınma alışkanlıkları

Önleme, temizlikten daha ucuzdur. Yalnızca aktif olarak kullandığınız fonları ve NFT'leri tutan özel bir "minting" cüzdanı bulundurun, böylece kötü bir onay uzun vadeli varlıklarınızı riske atamaz. Her setApprovalForAll isteğini bir formalite yerine bilinçli bir karar olarak ele alın ve asla bir reklam, doğrudan mesaj veya istenmeyen bir bağlantı aracılığıyla ulaştığınız bir sitede onay vermeyin. Pazar yeri ve mint URL'lerini, boşaltıcı operatörler tarafından rutin olarak ele geçirilen arama reklamlarından değil, resmi kaynaklardan doğrulayın.

Son olarak, bir rutin oluşturun: onaylarınızı aylık olarak gözden geçirin, eski olanları iptal edin ve tek seferlik bir mint sitesini kullanmayı bitirdikten hemen sonra iptal edin. Operatör onayları kendiliğinden sona ermez, bu nedenle unutulmuş bir projeden gelen eski bir yetki, siz onu aktif bıraktığınız sürece canlı bir saldırı yüzeyi olarak kalır. Birkaç dakikalık denetim, iptal etmenin maliyetinden çok daha değerli olabilecek varlıkları korur.

Bu makale yalnızca eğitim amaçlıdır ve finansal tavsiye değildir.

Originally published by DEXTools News. © 2026 DEXTools News (STRADEXT DEFI SOLUTIONS, S.L.). Reproduction or republication without written permission is prohibited.