Rust akıllı sözleşmeler güvenliği: Erişim kontrolü ve yetki yönetimi ayrıntılı açıklaması

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 makalede Rust akıllı sözleşmelerinde erişim kontrolünün iki yönü ele alınacaktı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üğü

Rust akıllı sözleşmelerinde, fonksiyon görünürlüğü kontrolü çok önemlidir. NEAR SDK'da #[near_bindgen] makrosu aşağıdaki görünür özellikleri tanımlar:

  • pub fn: Kamuya açık işlev, sözleşmenin dışından çağrılabilir
  • fn: İç fonksiyon, yalnızca sözleşme içinde çağrılabilir
  • pub(crate) fn: crate içindeki çağrıyı kısıtla

Ayrıca, iç yöntemleri tanımlamak için bağımsız bir impl Contract bloğu kullanılabilir:

pas #[near_bindgen] impl Sözleşme { pub fn increment(&mut self) { self.internal_increment(); } }

impl Sözleşme { pub fn internal_increment(&mut self) { self.counter += 1; } }

Geri çağırma fonksiyonu için, yalnızca sözleşme tarafından çağrılmasını sağlamak için pub olarak ayarlanmalı ve #[private] makrosu kullanılmalıdır:

pas #[near_bindgen] impl Sözleşme { #[private] pub fn resolve_transfer(&mut self) { // Geri çağırma mantığı } }

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

Fonksiyon görünürlüğünün yanı sıra, erişim kontrol beyaz liste mekanizması da oluşturulmalıdır. Özelleştirilebilir Trait uygulaması yapılabilir:

pas pub trait Sahiplenebilir { fn assert_owner(&self) { assert_eq!(env::predecessor_account_id(), self.get_owner()); } AccountId; fn set_owner(&mut self, owner: AccountId); }

Özellik fonksiyonunda assert_owner() çağrısı yapmak, yalnızca sahibin yürütmesine izin vermek için kısıtlayabilir:

pas impl Sözleşme { pub fn ayrıcalıklı_fonksiyon(&mut kendisi) { self.assert_owner(); // Ayrıcalıklı işlemler } }

Bu, temel bir beyaz liste mekanizmasını gerçekleştirmeyi sağlar ve ayrıca çoklu kullanıcılar, çoklu beyaz listeler gibi karmaşık erişim kontrollerinin daha da genişletilmesini sağlar.

Sözleşmenin güvenliği, çağrı zamanının kontrolü, çoklu imza mekanizması gibi birçok açıdan dikkate alınmalıdır ve bu konular sonraki makalelerde ayrıntılı olarak ele alınacaktır.

GET5.66%
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
  • 9
  • Share
Comment
0/400
GasWastervip
· 07-24 14:55
Yine derin konuları araştırıyorsun.
View OriginalReply0
rugdoc.ethvip
· 07-24 12:22
Bu çok klasik bir konu değil mi?
View OriginalReply0
GateUser-9ad11037vip
· 07-24 03:37
Siyah liste mekanizmasını biraz güncelleyelim mi~
View OriginalReply0
DefiPlaybookvip
· 07-23 10:17
Kapsamlı veriler, ziyaret kontrolünün sözleşme açıklarının ilk 3'ünde yer aldığını gösteriyor.
View OriginalReply0
SeeYouInFourYearsvip
· 07-21 20:27
rust böyle bir şeydir.
View OriginalReply0
OnchainDetectivevip
· 07-21 20:27
Yetki kontrolü göstermelik, arka kapıları kontrol etmenin zamanı geldi.
View OriginalReply0
rekt_but_resilientvip
· 07-21 20:21
Bu sözleşmenin güvenlik mekanizması su gibi.
View OriginalReply0
DarkPoolWatchervip
· 07-21 20:13
Güzel yazılmış ama ben uyuyakalmışım.
View OriginalReply0
MEVSandwichVictimvip
· 07-21 20:11
Önemli noktayı vurguladım, tamam mı?
View OriginalReply0
View More
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)