اشتراک‌ها
مشکل امنیتی رفع شده در Roxy FileManager

RoxyFileManager

Roxy FileManager یک فایل آپلود کارآمد بسیار کم حجم و رایگان می‌باشد که Php و Net. را پشتیبانی می‌کند اما مشکل امنیتی داشت که در نسخه 1.4.5 رفع گردیده و می‌توانید هم اکنون از سایت www.roxyfileman.com  آن دریافت کنید. 

اما این مشکل به چه صورت بود:
در داخل پوشه این ابزار فایل conf.json وجود دارد که اگر آن را با Notepad باز کنید تنظیمات پیش فرض این ابزار را مشاهده می‌کنید که در خط 28 موارد ممنوعه برای آپلود به عنوان FORBIDDEN_UPLOADS ذکر شده و از آپلود فایل‌های خطرناکی که در روش هک Shell Upload مورد استفاده قرار می‌گیرند جلوگیری می‌کند. تا اینجا همچی عالیه D:  ! 

اما در Roxy File Manager امکان دیگری وجود دارد و آن تغییر نام فایل‌های آپلود شده می‌باشد که پسوند و نوع فایل در این حالت بررسی نمی‌شود و شما به راحتی می‌توانید فایل Shell خودتان را در هنگام آپلود تغییر نام دهید مثلاً  فایل شما Shell.php بوده و شما با تغییر نام آن به Shell.phpJPG می‌توانید آن را آپلود کنید سپس در محیط ابزار آن را تغییر نام دهید و نیت خیر خواهانه خودتان را به انجام برسانید.

از این رو اگر از Roxy File Manager نسخه پایین‌تر از 1.4.5 استفاده می‌کنید حتماً بروز رسانی نمائید !.
نحوه استفاده از این ابزار را می‌توانید در این پست  افزونه مدیریت فایل‌های رایگان Roxy FileMan برای TinyMce و CkEditor  مشاهده نمائید.

مشکل امنیتی رفع شده در Roxy FileManager
مطالب
رمزنگاری یک بانک اطلاعاتی SQLite
ممکن است برای شما هم پیش آمده باشد که بخواهید در برنامه‌تان از دیتابیس SQLite استفاده کنید و دسترسی به آن از طریق برنامه‌های SQLite Browser امکان پذیر نباشد؛ به زبان ساده‌، امنیت آن را تامین کنید.
SQLite امکان تعیین کلمه‌ی عبور را به شما می‌دهد تا به وسیله‌ی آن بتوانید دیتابیس را رمزنگاری کنید تا امکان باز کردن آن به صورت عادی وجود نداشته باشد.

برای ایجاد کلمه عبور در دیتابیسی که از قبل رمزنگاری نشده است و یا تغییر کلمه عبور دیتابیسی که قبلا رمزنگاری شده است، به این صورت عمل کنید:
// بازکردن دیتابیسی که از قبل رمزنگاری نشده است
SQLiteConnection cnn = new SQLiteConnection("Data Source=c:\\test.db3");
cnn.Open();

// دیتابیس رمزنگاری شده. ارتباط با دیتابیس همچنان صحیح و برقرار باقی می‌ماند
cnn.ChangePassword("mypassword");

برای حذف کلمه عبور در دیتابیسی که از قبل رمزنگاری شده است باید تابع ChangePassword را با مقدار null و یا "" فراخوانی کنید.
// بازکردن دیتابیسی که از قبل رمزنگاری شده
SQLiteConnection cnn = new SQLiteConnection("Data Source=c:\\test.db3;Password=mypassword");
cnn.Open();

// حذف رمزنگاری از دیتابیس رمزنگاری شده
cnn.ChangePassword( null as byte[] );

برای بازکردن دیتابیس رمزنگاری شده و یا ایجاد یک دیتابیس رمزنگاری شده باید کلمه عبور در ConnectionString (همانند مثال بالا) قید شود و یا با فراخوانی تابع SetPassword قبل از فراخوانی تابع Open این کار را انجام داد. در صورتی که کلمه عبور در ConnectionString قید شود باید به صورت cleartext باشد. در حالیکه وقتی از تابع SetPassword استفاده می‌کنید می‌توانید کلمه عبور را به صورت آرایه ای از byte نیز تعریف کنید.
// SetPassword بازکردن دیتابیس رمزنگاری شده با استفاده از فراخوانی تابع
SQLiteConnection cnn = new SQLiteConnection("Data Source=c:\\test.db3");

cnn.SetPassword(new byte[] { 0xFF, 0xEE, 0xDD, 0x10, 0x20, 0x30 });
cnn.Open();

در صورتیکه بخواهید ارتباطی را که وجود دارد، به یک فایل دیتابیس دیگر متصل کنید باید به صورت زیر عمل کنید:

- در صورتیکه کلمه عبور به صورت cleartext  می‌باشد:
SQLiteConnection cnn = new SQLiteConnection("Data Source=c:\\test.sqlite");
cnn.Open();

cmd = new SQLiteCommand("ATTACH DATABASE 'c:\\pwd.sqlite' AS [Protected] KEY 'mypassword'", cnn);
cmd.ExecuteNonQuery();

- در صورتیکه کلمه عبور به صورت باینری می‌باشد:
SQLiteConnection cnn = new SQLiteConnection("Data Source=c:\\test.db3");
cnn.Open();

cmd = new SQLiteCommand("ATTACH DATABASE 'c:\\pwd.db3' AS [Protected] KEY X'FFEEDD102030'", cnn);
cmd.ExecuteNonQuery();
اشتراک‌ها
Syntax highlighting شبیه به GitHub

Apparently, GitHub’s own syntax highlighting approach isn’t open source, but this takes a similar approach and is. It’s admittedly quite 'heavy' (due to using a WASM build of the Oniguruma regex engine) but that’s the price of quality. 

Syntax highlighting شبیه به GitHub
اشتراک‌ها
معرفی OpenJDK ساخت مایکروسافت

Today we are excited to announce the general availability of the Microsoft Build of OpenJDK, a new no-cost distribution of OpenJDK that is open source and available for free for anyone to deploy anywhere.  

معرفی OpenJDK ساخت مایکروسافت
اشتراک‌ها
کتابخانه k6

k6 is an open-source load testing tool for testing the performance of your systems. It’s built with Go and JavaScript to integrate well into your development workflow, so you can stay on top of performance without fuzz. 

کتابخانه k6
اشتراک‌ها
سورس باز شدن MSDN/TechNet

After 15 years of running on essentially the same codebase, Microsoft has finally decided to retire MSDN and TechNet. The replacement will be an open source project known as docs.microsoft.com. 

سورس باز شدن MSDN/TechNet
نظرات مطالب
مروری بر چند تجربه‌ی کاری با SQLite
با سلام خدمت استاد عزیز.
من یه برنامه نوشتم که از بانک sqlite استفاده میکنه.
وقتی برناه رو توزیع میکنم روی بعضی از سیستم‌ها پیغامی مبنی بر عدم پیدا کردن dll مذکور رو میده، به نظر شما مشکل از کجاست ؟