Password
3 dk okuma
Bir Password alanı, bir daha asla gösterilmeyen bir gizli bilgiyi saklar. Düzenleme ekranı her zaman boş bir kutu gösterir. Bunu, kendi kodunuzun doğruladığı veya kullandığı bir iş ortağı erişim kodu, bir indirme parolası ya da bir API sırrı gibi şeyler için kullanın.
Tür kimliği |
|
Varsayılan sütun |
|
Döndürür | Saklanan mühürlenmiş değer (bir hash, şifrelenmiş bir string veya düz metin); değil, yazdırabileceğiniz bir parola |
Yazdırır | Açıkça izin vermediğiniz sürece hiçbir şey |
Type settings
Ayar | Varsayılan | Etki |
|---|---|---|
Store as | Hash (recommended) | Yeni bir değerin nasıl kaydedileceği: Hash (recommended), Encrypted veya Plain text. Değiştirmek sonradan kaydedilen değerlere uygulanır; mevcut değerler biçimlerini korur ve yine doğrulanır. |
Ask for the password twice in front-end forms | Kapalı | Bir ön yüz formunda (Pro) ikinci bir kutu, Repeat the password, gösterir ve ikisi farklıysa değeri reddeder. Yönetici düzenleme ekranında etkisi yoktur. |
Üç saklama modu
Mod | Veritabanında ne var | Geri okuyabilir misiniz? | Ne zaman kullanılır |
|---|---|---|---|
Hash (recommended) | Bir WordPress parola hash'i, örneğin | Hayır. Bir parolayı yalnızca onunla karşılaştırabilirsiniz. | Ziyaretçiler bir parola yazar ve siz karşılaştırırsınız (korumalı bir alan, bir indirme kodu). |
Encrypted |
| Evet: | Kendi kodunuzun gizli bilgiyi kullanması gerekir (örneğin bir API'yi çağırmak için). |
Plain text | Yazıldığı haliyle metin | Evet ve | Yalnızca değerin önemli olduğu tek yer veritabanıysa. Bundan kaçının. |
Şifrelenmiş değerler, sitenizin SECURE_AUTH_SALT değerinden türetilen bir anahtar kullanır. wp-config.php içindeki salt değerlerini değiştirirseniz şifrelenmiş değerlerin şifresi artık çözülemez; yeniden girilmeleri gerekir. Hash değerleri etkilenmez.
Kaydederken kurallar
- Bir parola en fazla 128 bayt uzunluğunda olabilir. Daha uzun değerler reddedilir.
- Min length ve Max length (Validation sekmesi) bu tür için sunucuda denetlenir ve değer kesilmez, reddedilir. Editör "Use at least 6 characters." veya "Use at most 10 characters." mesajını görür.
- Metin yazıldığı gibi saklanır. Kırpılmaz ve etiketlerden arındırılmaz. Yalnızca geçersiz karakterler ve NUL baytları kaldırılır.
- Boş bir kutu saklanan parolayı korur. Kaldırmak için Remove the stored password kutusunu işaretleyin (yalnızca bir parola saklıyken ve alan zorunlu değilken gösterilir).
- Zorunlu bir alan saklanan bir parolayla karşılanır; editörün onu yeniden yazması gerekmez.
- Zaten bir hash veya şifrelenmiş string olan bir değer (örneğin bir dışa aktarmadan kopyalanmış) olduğu gibi saklanır ve asla iki kez hash'lenmez.
Kodda okuma ve doğrulama
// Is the typed password right? Works for hashed, encrypted and plain fields.
if ( wpmcf_check_password( 'partner', 'access_code', $_POST['code'] ?? '', $post_id ) ) {
// allow access
}
// Read an encrypted or plain value (returns null for a hashed value or an empty field).
$secret = wpmcf_get_password( 'integration', 'api_secret', $post_id );
// Set it from code. A plain string is sealed with the field's storage mode.
wpmcf_update_field( 'partner', 'access_code', 'S3cret!pass', $post_id );
wpmcf_update_field( 'partner', 'access_code', '', $post_id ); // keeps the current password
wpmcf_update_field( 'partner', 'access_code', null, $post_id ); // removes itwpmcf_update_field(), parola reddedildiğinde (çok uzun veya Min length ile Max length dışında) false döndürür. Yetkileri denetlemez: kullanıcı girdisini ona iletmeden önce izinleri kendiniz kontrol edin.
wpmcf_get_field() bir parola alanında mühürlenmiş değeri saklandığı haliyle döndürür:
Mod |
|
|---|---|
Hash |
|
Encrypted |
|
Plain text |
|
Bunu asla yazdırmayın. wpmcf_check_password() ve wpmcf_get_password() onu kullanmanın güvenli yollarıdır. Parolanın tuzsuz md5 veya sha1 değerini tutan eski sütunlar da wpmcf_check_password() ile doğrulanır.
Yazdırma
wpmcf_the_field() ve [wpmcf_field], bir parola için her biçimde hiçbir şey yazdırmaz. Parolalar ayrıca bir yazının REST API değerlerinden ve {{ fg.… }} değişkenlerinden de çıkarılır.
Okunabilir (şifrelenmiş veya düz metin) bir parolayı yine de yazdırmak için bir filtreyle etkinleştirin. Bunu yalnızca sayfa özelse yapın.
add_filter( 'wpmcf/field/the_password', '__return_true' );Hash'lenmiş bir parola, filtreyle de filtresiz de asla yazdırılamaz.
Nerede çalışır
- Yazıların, kullanıcıların, terimlerin, yorumların, widget'ların ve seçenek sayfalarının düzenleme ekranları: evet. Girdi
autocomplete="new-password"kullanır; böylece tarayıcılar onu kullanıcının kayıtlı girişiyle doldurmaz. - Ön yüz formları (Pro): evet, isteğe bağlı onay kutusuyla.
- Bir Group veya Repeater alt alanı olarak: hayır. Bunlar tüm alt alanlarını tek bir JSON değeri olarak saklar; bu da yeniden yazılmamış bir parolayı tutamaz. Password alanını grubun en üst düzeyine koyun.
- SQL sütun fonksiyonları: yok (parola kendini hash'ler).
Sorun giderme
- Parolayı editöre göstermem gerekiyor. Gösteremezsiniz; Encrypted kullanın ve kendi yönetim ekranınızda
wpmcf_get_password()ile gösterin ya da editörün yenisini belirlemesine izin verin. wpmcf_get_password(),nulldöndürüyor. Alan boş, Hash olarak saklanmış veya şifrelenmiş değerin şifresi çözülemiyor (salt değerleri değişmiş).- Kısa kod hiçbir şey yazdırmıyor. Bu bilinçli bir tasarımdır; bkz. "Yazdırma".
- "This password is too long." Parolalar 128 bayt ile sınırlıdır.
Hâlâ takıldınız mı? Destek ile iletişime geçin