Rust akıllı sözleşmeler güvenliği: Erişim kontrolü ve fonksiyon görünürlüğü detayları

robot
Abstract generation in progress

Rust akıllı sözleşmeler yetiştirme günlüğü (7) Sözleşme güvenliği ve erişim kontrolü

Bu makale, Rust akıllı sözleşmelerinde izin kontrolünü iki açıdan tanıtacaktır:

  1. Sözleşme yönteminin görünürlüğü
  2. Ayrıcalıklı fonksiyonların erişim kontrolü

1. Sözleşme fonksiyonu görünürlüğü

Sözleşme işlevlerinin görünürlüğünü doğru bir şekilde ayarlamak, sözleşmenizi güvende tutmak için çok önemlidir. Haziran 2020'deki Bancor Network borsa olayını örnek alırsak, anahtar aktarım işlevinin yanlışlıkla halka açık olarak ayarlanması nedeniyle kullanıcıların varlıkları risk altındaydı.

Rust akıllı sözleşmelerinde, birkaç ana işlev görünürlüğü türü vardır:

  • Pub FN: Sözleşme dışından çağrılabilen kamu işlevi
  • fn: Yalnızca sözleşme içinde çağrılabilen varsayılan dahili işlev
  • pub(crate) fn: Sandık içinden gelen çağrıları kısıtla

Ayrıca, #[near_bindgen] ile süslenmemiş impl bloklarında tanımlanan yöntemler içseldir.

Geri çağırma fonksiyonu için public olarak ayarlanması gerekir, ancak aynı zamanda çağrıcı kontrolü de yapılmalıdır, bu #[private] makrosu kullanılarak gerçekleştirilebilir.

Dikkate değer bir nokta, Rust'ın varsayılan olarak tüm içeriği private olarak ayarladığıdır, yalnızca pub trait ve pub enum içindeki öğeler hariç.

!

2. Ayrıcalık fonksiyonlarının erişim kontrolü

Fonksiyon görünürlüğünü ayarlamanın yanı sıra, erişim kontrol beyaz liste mekanizması da oluşturulmalıdır. Solidity'deki onlyOwner modifikatörü gibi, yalnızca sahibinin çağırabileceği ayrıcalıklı fonksiyonlar tanımlanabilir.

Rust'ta bu, özel özelliklerle elde edilebilir:

pas pub özelliği Sahip Olunabilir { fn assert_owner(&self) { assert_eq!(env::predecessor_account_id(), self.get_owner()); } AccountId; FN set_owner(&mut Öz, Sahibi: AccountId); }

Bu, temel sahip izin kontrolüne izin verir. Daha ayrıntılı erişim kontrolü için çok kullanıcılı bir beyaz listeye veya çok gruplu bir beyaz listeye daha da genişletilebilir.

!

!

!

!

!

View Original
This page may contain third-party content, which is provided for information purposes only (not representations/warranties) and should not be considered as an endorsement of its views by Gate, nor as financial or professional advice. See Disclaimer for details.
  • Reward
  • 5
  • Share
Comment
0/400
NFT_Therapyvip
· 14h ago
Yetki kontrolü olmalı! Aksi takdirde sözleşme ele geçirilirse GG olur.
View OriginalReply0
PonziDetectorvip
· 14h ago
Rust yyds en sağlam
View OriginalReply0
MetaMuskRatvip
· 14h ago
Yine bir yönetim yetkisi, kaçtım kaçtım
View OriginalReply0
ser_we_are_earlyvip
· 14h ago
Basit ve sert bir şekilde, sadece bir yetki kontrolü eklemektir.
View OriginalReply0
MemeEchoervip
· 14h ago
Bakınca uyku geliyor, gerçekten kim öğrendi?
View OriginalReply0
Trade Crypto Anywhere Anytime
qrCode
Scan to download Gate app
Community
  • 简体中文
  • English
  • Tiếng Việt
  • 繁體中文
  • Español
  • Русский
  • Français (Afrique)
  • Português (Portugal)
  • Bahasa Indonesia
  • 日本語
  • بالعربية
  • Українська
  • Português (Brasil)