تجنبUsingConvertToSecureStringWithPlainText

مستوى الخطورة: خطأ

وصف

تكتشف هذه القاعدة استخدام المعامل AsPlainText مع ConvertTo-SecureString الأمر، الذي يتجاوز التشفير ويكشف معلومات حساسة في الذاكرة كنص عادي، مما يلغي هدف SecureString.

بدلا من ذلك، استرجع بيانات الاعتماد الآمنة عبر قنوات مشفرة أو استخدم طرق إدخال آمنة مثل Read-Host -AsSecureString ضمان بقاء البيانات الحساسة مشفرة طوال دورة حياتها.

التوصيات

إذا كنت بحاجة لاسترجاع كلمات المرور برمجيا دون تدخل المستخدم، فكر في استخدام وحدة SecretStore من PowerShell Gallery، والتي توفر تخزين واسترجاع بيانات الاعتماد المشفرة.

مثال

غير متوافق

$UserInput = Read-Host 'Please enter your secure code'
$EncryptedInput = ConvertTo-SecureString -String $UserInput -AsPlainText -Force

متوافقه

$SecureUserInput = Read-Host 'Please enter your secure code' -AsSecureString