ما اکثر زمان ها می بایست داده های محرمانه را در اپلیکیشن ها ، طراحی اپلیکیشن در مشهد برای مثال رمزهای عبور ، کلیدهای نهفته و مشتقات آن ها ذخیره کنیم و معمولاً ما بایستی بعداز به کارگیری از آن ها ، ردیابی آنانرا در یاد منزه کنیم تا یک متجاوز بالقوه نتواند بهاین اطلاعات دسترسی پیدا نماید. دراین نوشتهی علمی ما گفت و گو خوا هیم کرد که چرا شما نمی توانید داده های محرمانه را با به کار گیری ازعملکرد ممتاز () منزه فرمائید.
ممتاز()
شما ممکن میباشد نوشته ی علمی را در امر جراحت پذیری در اپ هایی که از یاد () برای نظافت کردن یاد استعمال میشود ، خوانده باشید. با این هم اکنون ، این نوشتهعلمی تک تک سناریوهای ممکن برای استعمال خطا از ممتاز را پوشش نمی دهد . شما ممکن میباشد خیر فقط در نظافت کردن بافرهای تخصیص داده گردیده از پشته بلکه با تمیز کردن بافرهای تخصیص داده گردیده پویا نیز اختلال داشته باشید.
پشته
برای آغاز ، بیایید مثالی از نوشتهعلمی فوق که در زمینهی به کار گیری از یک متغیر تخصیص داده گردیده از پشته میباشد ، مشاجره کنیم.
در اینجا یک قطعه کد وجود داراست که یک سر عبور دارااست:
#include
#include
#include
//Private data
struct PrivateData
{
size_t m_hash;
char m_pswd[100];
};
//Function performs some operations on password
void doSmth(PrivateData& data)
{
std::string s(data.m_pswd);
std::hash hash_fn;
data.m_hash = hash_fn(s);
}
//Function for password entering and processing
int funcPswd()
{
PrivateData data;
std::cin >> data.m_pswd;
doSmth(data);
memset(&data, 0, sizeof(PrivateData));
return 1;
}
int main()
{
funcPswd();
return 0;
}
این نمونه نسبتاً ساده و تماماً تصنعی و مصنوعی میباشد.
در حالتی که ورژن گونه های زدایی از آن کد ساخت کنیم و آن را در گونه های زدایی انجام کنیم (اینجانب از ویژوال استودیو 2015 به کارگیری کردم) ، خوا هیم روءیت کرد که به خیر فعالیت می نماید: پسورد و مقدار هش به حساب آوردن گردیده آن بعد از استعمال از در بین میروند.
ما اکثر زمان ها می بایست داده های محرمانه را در اپلیکیشن ها ، طراحی اپلیکیشن در مشهد برای مثال رمزهای عبور ، کلیدهای نهفته و مشتقات آن ها ذخیره کنیم و معمولاً ما بایستی بعداز به کارگیری از آن ها ، ردیابی آنانرا در یاد منزه کنیم تا یک متجاوز بالقوه نتواند بهاین اطلاعات دسترسی پیدا نماید. دراین نوشتهی علمی ما گفت و گو خوا هیم کرد که چرا شما نمی توانید داده های محرمانه را با به کار گیری ازعملکرد ممتاز () منزه فرمائید.
ممتاز()
شما ممکن میباشد نوشته ی علمی را در امر جراحت پذیری در اپ هایی که از یاد () برای نظافت کردن یاد استعمال میشود ، خوانده باشید. با این هم اکنون ، این نوشتهعلمی تک تک سناریوهای ممکن برای استعمال خطا از ممتاز را پوشش نمی دهد . شما ممکن میباشد خیر فقط در نظافت کردن بافرهای تخصیص داده گردیده از پشته بلکه با تمیز کردن بافرهای تخصیص داده گردیده پویا نیز اختلال داشته باشید.
پشته
برای آغاز ، بیایید مثالی از نوشتهعلمی فوق که در زمینهی به کار گیری از یک متغیر تخصیص داده گردیده از پشته میباشد ، مشاجره کنیم.
در اینجا یک قطعه کد وجود داراست که یک سر عبور دارااست:
#include
#include
#include
//Private data
struct PrivateData
{
size_t m_hash;
char m_pswd[100];
};
//Function performs some operations on password
void doSmth(PrivateData& data)
{
std::string s(data.m_pswd);
std::hash hash_fn;
data.m_hash = hash_fn(s);
}
//Function for password entering and processing
int funcPswd()
{
PrivateData data;
std::cin >> data.m_pswd;
doSmth(data);
memset(&data, 0, sizeof(PrivateData));
return 1;
}
int main()
{
funcPswd();
return 0;
}
این نمونه نسبتاً ساده و تماماً تصنعی و مصنوعی میباشد.
در حالتی که ورژن گونه های زدایی از آن کد ساخت کنیم و آن را در گونه های زدایی انجام کنیم (اینجانب از ویژوال استودیو 2015 به کارگیری کردم) ، خوا هیم روءیت کرد که به خیر فعالیت می نماید: پسورد و مقدار هش به حساب آوردن گردیده آن بعد از استعمال از در بین میروند.

تفاوت بین وب سایت و اپلیکیشن