ایجاد سوال
dark_mode
0 دوستدار 0 امتیاز منفی
11 visibility
موضوع: آفیس توسط:

Mark یک کتاب کار اکسل (Protected.xlsm) دارد که مانند همه کاربرگ‌ها با رمز عبور محافظت می‌شود. به نظر می رسد تنها کاری که برای دور زدن این امنیت باید انجام شود این است که کاربر همزمان با Protected.xlsm، یک کتاب کار اکسل دیگر را باز کند که حاوی یک ماکرو است که از هر کاربرگ در کتاب کار فعال محافظت می کند. اجرای ماکرو در Protected.xlsm به طور مؤثری از کاربرگ های محافظت شده از قبل محافظت می کند و به همه آنها هر رمزی که توسط ماکرو مشخص شده است داده می شود. بنابراین، هر کاربرگ در Protected.xlsm اکنون می‌تواند بدون محافظت باشد، در نتیجه امنیت اصلی من را دور می‌زند. مارک تعجب می کند که چگونه می تواند از وقوع این نقض امنیتی جلوگیری کند.

اولین قدم برای رسیدن به پاسخ، تلاش برای ایجاد مجدد مشکل است. من دو کتاب کار ایجاد کردم که آنها را Protected.xlsm (همانطور که مارک دارد) و BreakIt.xlsm می نامم. من Protected.xlsm را مانند مارک با رمز عبور محافظت نکردم (در یک لحظه در مورد آن بیشتر توضیح می‌دهم)، اما چند ماکرو کوچک به کتاب کار اضافه کردم. من سه کاربرگ را در کتاب کار قرار دادم و دو کاربر اول را با رمز عبور "abcd" محافظت کردم. کاربرگ سوم را بدون محافظت رها کردم.

در کاربرگ BreakIt.xlsm یک ماکرو منفرد قرار دادم که از تمام کاربرگ‌های کتاب کار فعال عبور می‌کند و از هر یک محافظت می‌کند:

Sub ProtSheet()
    Dim w As Worksheet
    For Each w In ActiveWorkbook.Worksheets
        w.Protect Password:="xyz", DrawingObjects:=True, _
          Contents:=True, Scenarios:=True
    Next w
End Sub

سپس Protected.xlsm را به کتاب کار فعال تبدیل کردم و ماکرو ProtSheet را اجرا کردم. این همان سناریویی است که مارک توضیح داد. ماکرو بدون خطا اجرا شد. نتایج این بود که دو کاربرگ اول محافظت شده باقی ماندند و رمز عبور اصلی تغییر نکرد. به عبارت دیگر، حفاظت در برگه ها نقض نشده است - سناریوی علامت ها تکراری نشده است. کاربرگ سوم در Protected.xlsm - موردی که برای شروع بدون محافظت گذاشته بودم - توسط ماکرو ProtSheet محافظت شد و کاربرگ رمز عبور جدید ("xyz") داده شد.

من Protected.xlsm را بدون ذخیره هیچ تغییری بستم و کتاب کار را دوباره باز کردم. سپس سعی کردم با استفاده از این تغییر ساده رمز عبور را در ماکرو ProtSheet روی هیچ تنظیم کنم:

Sub ProtSheet()
    Dim w As Worksheet
    For Each w In ActiveWorkbook.Worksheets
        w.Protect Password:="", DrawingObjects:=True, _
          Contents:=True, Scenarios:=True
    Next w
End Sub

هنگامی که من این تغییر را در کتاب کار Protected.xlsm اجرا کردم، همچنان بدون خطا اجرا شد. با این حال، همان نتیجه رخ داد - گذرواژه‌های کاربرگ‌های محافظت شده اولیه تغییر یا حذف نشدند. فقط کاربرگ سوم (اونی که بدون محافظت گذاشته بودم) توسط ماکرو محافظت شده بود و بدون رمز عبور.

از آنجایی که نمی‌توانم سناریوی اصلی مارکس را بازسازی کنم، این باعث شد که در مورد آنچه که او می‌دید تعجب کنم. این امکان وجود دارد که ماکرو دیگری در مورد Marks در حال اجرا باشد که در واقع عدم محافظت یا محافظت مجدد را انجام می دهد. همچنین این امکان وجود دارد که ماکروها در نسخه اکسل من همانطور که انتظار می رود (بدون نقض امنیتی) رفتار کنند، اما در نسخه Marks چنین رفتاری ندارند. در نهایت، همچنین ممکن است که چون ماکرو ProtSheet بدون خطا اجرا می‌شود، مارک به اشتباه فکر می‌کند که امنیت نقض شده است. فرض این امر آسان است، زیرا می توان انتظار داشت که کد یک خطا ایجاد کند، زیرا نمی تواند با موفقیت از یک کاربرگ که قبلاً با رمز عبور دیگری محافظت شده بود، با رمز عبور محافظت کند.

قبلاً اشاره کردم که من آنطور که مارک انجام داده بود از کتاب کار با رمز عبور محافظت نکردم. من این کار را انجام ندادم زیرا محافظت در سطح کاربرگ و محافظت در سطح کتاب کار دو چیز کاملاً متفاوت هستند. مشکل اصلی علامت گذاری مربوط به نقض حفاظت در سطح کاربرگ بود، نه با نقض حفاظت در سطح کتاب کار. بنابراین، کتاب کار محافظت شده کمی مشکل اصلی را نشان می دهد. با این حال، معمای جالبی را برای مارک ایجاد می کند: شما کاربرانی دارید که به آنها گذرواژه برای باز کردن کتاب کار اعتماد دارید (تا بتوانند از امنیت سطح کتاب کار عبور کنند) اما نمی توانید به آنها اعتماد کنید که سعی در شکستن کاربرگ ندارند. سطح امنیت بازیگر بد شما - کسی که سعی می کند از کاربرگ ها محافظت کند - هرگز نمی تواند به جایی برسد که آن بازی بد را بدون گذر از امنیت سطح کتاب کار انجام دهد. در واقعیت،

با این حال، اگر نمی‌توانید به کاربران خود کاملاً اعتماد کنید و فکر می‌کنید که آنها می‌توانند از محافظت در سطح کتاب کار عبور کنند، از نظر تئوری می‌توانید یک کنترل‌کننده رویداد در سطح کاربرگ ایجاد کنید که هر بار که کاربرگ فعال می‌شود اجرا می‌شود. کنترل‌کننده می‌تواند سعی کند با استفاده از رمز عبور صحیح، از کاربرگ محافظت کند. در صورت موفقیت آمیز بودن، می تواند فوراً از کاربرگ با استفاده از رمز عبور صحیح شما محافظت کند. اگر ناموفق بود، می‌دانید که رمز عبور روی کاربرگ به نحوی تغییر کرده است و ماکرو می‌تواند هر اقدامی را که لازم می‌دانید انجام دهد، مانند بستن فوری کتاب کار بدون ذخیره هیچ تغییری.

اگر خواستی، با این لینک از ما حمایت کن

پاسخ شما

looks_5نام شما برای نمایش - اختیاری
حریم شخصی : آدرس ایمیل شما محفوظ میماند و برای استفاده های تجاری و تبلیغاتی به کار نمی رود
عدد چهار رقمی در تصویر را وارد کنید

برای جلوگیری از این تایید در آینده, لطفا وارد شده یا ثبت نام کنید.
اگر حساب گوگل دارید به راحتی وارید شوید

0 پاسخ وجود دارد

سوال مشابهی یافت نشد

برای دسترسی راحت به مطالب سایت ، اپلیکیشن سایت را نصب کنید
و لطفا بعد از نصب امتیاز دهید. با تشکر از حمایت شما

23.2k سوال

8.5k پاسخ

608 دیدگاه

9.7k کاربر

118 نفر آنلاین
0 عضو و 118 مهمان در سایت حاضرند
بازدید امروز: 9219
بازدید دیروز: 14599
بازدید کل: 15090848
...