עצלנות של מפתחים ואבטחת מידע - והפעם כיצד לעקוף את הבדיקה שטלריק עושים האם קניתם את המוצר
בפוסט הקודם הראיתי עד כמה מפתחים לא חושבים מספיק על כל הנושא של אבטחת מידע.
היום אני אראה משהו דומה ונראה עד כמה מפתחים כותבים לפעמים בצורה מגוכחת.
אחד הכלים החשובים ביותר בכל סביבת פיתוח - היא
הפקדים של טלריק, בכל סביבה שבה אני עובד (win form, web, wpf, silverlight) אני משתדל שיהיה לי את היכולת להשתמש בפקדים שלהם.
כמובן שהפקדים עולים כסף (ובכלל לא זול - בסביבות 1000$ עבור סביבה אחת - אבל זה שווה כל שקל), חשוב שיהיה ברור שאני לא מעודד לגנוב אותם חלילה - מטרתי בפוסט זה היא רק להראות עד כמה חשוב לכתוב קוד נכון.
בימים אלו יצא לי לראשונה להשתמש בחבילה של wpf controls שלהם, ובכל הפעלה של האפליקצייה קבלתי את ההודעה המעצבנת הבאה:
באיזשהו שלב בזמן הפיתוח נמאס לי לקבל את הודעת השגיאה - התחלתי לחפש ב - reflector (שגם איתו יש סיפור מצחיק - בהמשך אספר) איפה הם עושים את הבדיקה האם להציג את הודעת השגיאה, אחרי כרבע שעה של שיטוטים מצאתי את הקוד הבא:
internal static void Verify(FrameworkElement targetControl)
{
if ((!IsInDesignMode &&
(Application.Current != null)) &&
(Application.Current.Resources["Telerik.Windows.Controls.Key"] == null))
{
VerifyImpl(targetControl);
AssemblyProtection.Validate();
}
}
הם קוראים לפונקצייה בכל ctor של פקד.
כל מה שהייתי צריך לעשות כדי להפסיק לקבל את ההודעה הוא להוסיף את הקוד הבא:
<Application.Resources>
<my:String x:Key="Telerik.Windows.Controls.Key">someKey</my:String>
</Application.Resources>
קצת מצחיק שזה כל מה שצריך לעשות כדי להפסיק לקבל הודעה על גרסת ניסיון.
זה לא אומר שלי יש כרגע רעיון טוב כיצד לממש את נושא הרשיון - אבל ברור לי שהרעיון של טלריק לא מוצלח במיוחד.
רציתי גם לספר על ה - reflector (וזה שהם לוקחים כסף) - אבל לצערי כבר אין לי זמן, אז זה יחכה כבר לפוסט הבא.