دنیای کامپیوتر

تولید کلمه عبور تصادفی در PHP

یکی از اصول ساده امنیتی که رعایت کردن اون کمک به سزایی در ارتقا سطح امنیتی وب سایت میکنه، تولید کلمه عبور تصادفی در مواقع نیاز هست. به عنوان مثال اگر شما از توابع رمزگذاری یکطرفه همچون MD5 برای ذخیره کردن کلمه های عبور استفاده کرده باشین در هنگامی که کاربر کلمه عبورش رو فراموش میکنه و درخواست دریافت مجددش رو میکنه می تونین با بهره گیری از این تابع یک کلمه عبور تولید شده تصادفی که فاکتور های امنیتی درش رعایت شده رو تولید کنید و برای کاربر ارسال کنید. و اما کد تابع مورد نظر ما:

<?php

function make_password($num_chars) {
if ((is_numeric($num_chars)) &&
($num_chars > 0) &&
(! is_null($num_chars))) {

$password = ;
$accepted_chars = ‘abcdefghijklmnopqrstuvwxyz1234567890’;

// تغذیه کردن مولد پسورد که در نسخه های قدیمی پی اچ پی مرسوم هست
srand(((int)((double)microtime()*1000003)) );

for ($i=0; $i<=$num_chars; $i++) {
$random_number = rand(0, (strlen($accepted_chars) –1));
$password .= $accepted_chars[$random_number] ;
}

return $password;
}
}
?>

همون طور که مشخص هست این تابع نیاز به یک پارامتر ورودی داره که وظیفش مشخص کردن طول رشته کلمه عبور تولیدی هست. وقتی که تابع مقدار طول رشته رو دریافت میکنه ابتدا اون رو بررسی میکنه که مقداری عددی و بزرگتر از صفر باشه. در ادامه متغیر password$ اماده سازی میشه. پس از اون بازه حروف و اعداد توسط متغیر accepted_char$ تعریف میشه که در نهایت مولفه های کلمه عبور تولیدی از بین همین موارد انتخاب خواهند شد. شما می تونین موارد دلخواه خودتون از جمله حروف بزرگ لاتین و سایر کاراکتر ها رو به این رشته اضاف کنید.

در نهایت در حلقه پایانی به تعداد مشخص شده از رشته درون accepted_char$ کاراکتر ها به صورت تصادفی انتخاب می شن و در کنار هم قرار میگیرند. در خاتمه کلمه عبور تولید شده به برنامه فراخواننده توسط return ارسال میشه تا مورد استفاده قرار بگیره.

تولید کلمه عبور تصادفی در PHP بیشتر بخوانید »

فرصت هایی که از دست می روند…

من از دلالی هیچ چیز نمی دونم و خوشم هم نمیاد ازش. توی جامعه ای زندگی می کنم که واسطه گری حتی توی گپ دوستانه یه بچه یازده ساله با دوستش نمودار هست. هر جا میری صحبت از زمین و مسکن و طلا و بنزین هست. ادم وقتی توی همچین جامعه ای بزرگ بشه خیلی زجر می کشه. مخصوصا اگر ایده آل گرا باشه و به جاهای دیگه دنیا سرکی کشیده باشه. همه این ها رو گفتم تا مرثیه تکراری منزوی بودن صنعت IT رو درایران و از دیدگاه خودم در جملاتی به تصویر بکشم.

اگر سری به لیست برترین های صنعت که هر ساله توسط مجله های معتبر از جمله بیزینس ویک منتشر میشه زده باشید و یا بزنید با تعدد شرکت های IT محوری مواجه خواهید شد که دهه اخیردر صدر لیست جا خوش کرده اند. شرکت هایی همچون IBM, Apple و… که پتانسیل های بالای این شاخه رو به خوبی یاد آور می شن. اما اگر نگاهی به داخل کشور و وضعیت اسفبار این صنعت بیندازیم کاری جز تاسف خوردن نمی تونیم بکنیم. خصوصا اینکه طی یکی دو سال اخیر زخم های زیادی بر پیکره IT کشور که خود به اندازه کافی مشکل دار بود وارد شده. از بلا تکلیفی طرح تکفا گرفته تا مظلوم واقع شدن آن در تخصیص بودجه از جانب دولت. همین معضلاتی که در سطح کلان شکل می گیره باعث میشه تا در سطح خرد مشکلات دو چندان بشه و فعالان این حوضه مدام از جریان جهانی عقب بمونن.

یکی از محاسن IT و شغل هایی که با محوریت اون ایجاد میشه تجارت الکترونیک هست. از مدل ساده اون که وبلاگ نویسی و فروش یه محصول هست گرفته تا پرتال هایی غول پیکر مثل یاهو که هر کدام مدل های در آمد زایی خودشون رو دارن. این بازه وسیع باعث میشه تا هر کسی و در هر سطحی به خودش جرات بده تا وارد این تجارت بشه و برای خودش سودی دست و پا کنه. خصوصا اینکه این روزها کار آفرین ها و کار آفرینی های زیادی با محوریت آی تی در سراسر جهان ظهور می کنند و یکی پس از دیگری از پتانسیل های بالای این حوضه بهره می برن. اما فکر می کنید دقیقا چی باعث رشد و شکوفایی کسب و کار های این حوضه شده و چرا این مدل هنوز در ایران جایی در خور توجه و شایسته پیدا نکرده؟ در ادامه در پاراگراف های بعدی سعی خواهم کرد به این پرسش پاز دیدگاه خودم پاسخ بدم.

فرصت هایی که از دست می روند… بیشتر بخوانید »

این بار هم Firefox از نگاهی دیگر

firefox-logo.pngبا طوفانی که بنیاد موزیلا با ارائه محصولات خود ، خصوصا فایرفاکس به راه انداخته است کمتر پیش می آید که خبر یا مطلبی پیرامون آن در محافل خبری و علمی مربوطه به گوش نرسد. از آنجاییکه عموما هر بار گوشه ای از قابلیت ها و ویژگی های فایر فاکس مطرح می شود، لذا این بار بر آن شدم تا مروری بر بسته های توسعه (Extension) فایرفاکس را تقدیم خوانندگان نمایم. در این مقاله ابتدا شرحی مختصر بر چگونگی تولید و توسعه Extension ها ارائه می شود و در ادامه چند Extension معروف فایر فاکس بررسی می شود.

همان طور که می دانید نرم افزارهای امروزی به دلیل رشد سریع پیشرفت های نرم افزاری از یک طرف و تقاضای روز افزون کاربران جهت ارائه ویژگی های جدید از جانب تولید گنندگان نرم افزار، آماج تغییرات زیادی هستند. بنابراین در این بین باید راه حلی جهت حل مقطعی یا دائمی وجود داشته باشد. این راه حل فراهم آوردن امکاناتی از جانب تولید کنندگان اصلی نرم افزار برای کاربران است که طی آن بتوانند به نیاز های خود پاسخ گویند و خود بتوانند قابلیت های برنامه را توسعه دهند. به بیان دیگر می توان از این امکان استفاده نمود و بسته هایی را جهت توسعه برنامه اصلی تولید نمود. عمدتا از این بسته ها تحت عنواین Plug-In، Add-On، Add-In، Extension و… یاد می شود که در رابطه با فایر فاکس بسته های توسعه دهنده به صورت زیر تعریف می شوند:

Extension: افزودنی های کوچکی هستند که قابلیت های فایر فاکس یا Thunderbird را افزایش می دهند. این افزودنی ها می توانند هر چیزی از نوار های ابزار گرفته تا یک ویژگی کاملا جدید را به بدنه برنامه های مذکور اضاف نمایند.

Plug-In: Plug-In ها نیز برنامه هایی هستند جهت افزودن قابلیت های مرورگر فایرفاکس تا مرورگر بتواند محتویات خاصی همچون ویدئو، موسیقی و بازی را عرضه کند. مثالی از این دست فلش پلیر شرکت Adobe ، اکروبات ریدر و نرم افزار ماشین مجازی از شرکت سان است.

Theme: توسط Theme ها می توان ظاهر برنامه های ساخت بنیاد موزیلا را تغییر داد. این به معنی گرافیک و رنگ های جدید می باشد.

این بار هم Firefox از نگاهی دیگر بیشتر بخوانید »

پیوستن به وب 2 با Adobe AIR

adobe_air.png(Adobe AIR (Adobe Integrated Runtime یک نوآوری است که برنامه های حوضه دسکتاپ و اینترنت رو با هم ترکیب می کنه و ضرورت استفاده از مرورگر جهت بهره گیری از برنامه های تحت وب رو از میان بر می داره. از منظر یک توسعه گر وب، کار این برنامه اجرای برنامه های تحت وب بدون نیاز به مرورگر و مستقیما بر روی دسکتاپ هست.

در این تکنولوژی جدید از سایر فن آوری ها و زبان های تحت وب موجود همچون HTML, Dreamweaver, Flash و… بهره برده می شه که همه این ها بر روی سکوی AIR پیاده سازی می شن. بدین ترتیب برنامه های ساخته شده با این تکنولوژی ماهیتی پویا پیدا می کنن، چرا که از پتانسیل برنامه های تحت وب و شاهراه اینترنت بهره می برن تا بیشتر محتویات مورد نیاز برنامه رو از طریق اینترنت تامین کنن.

همون طور که گفته شد هدف از AIR فراهم آوردن محیطی است که در اون بتوان برنامه های تحت وب مثل Google Docs رو بدون نیاز به مرورگر و در حالت آفلاین اجرا کرد. بدین صورت که تمامی کارهایی رو که به صورت آنلاین امکان پذیر هست رو در محیطی آفلاین انجام خواهیم داد  و به هنگام اتصال به اینترنت تمامی تغییرات و دستورات ما اعمال خواهد شد. علاوه بر این ویژگی AIR مستقل از پلتفرم هست، بدین معنا که بر روی سیستم عامل های معروف به راحتی اجرا خواهد شد. ( البته نسخه لینوکسی در حال حاضر در حال توسعه هست).

AIR با بهره گیری از ویژگی های دسکتاپ همچون کنترل های ویژوال و رویداد هایی همچون کشیدن و انداختن ( Drag & Drop ) و ترکیب اون ها با ویژگی های برنامه های تحت وب تجربه جدید و دلچسبی را برای کاربران به ارمغان خواهد آورد. همون طوری که تکنولوژی AJAX تونسته وب رو به سطحی بالاتر ارتقا بده.

از زمان ظهور AIR مدت زیادی نمیگذره، اما با این وجود شرکت های صاحب نامی همچون eBay به سمت استفاده از این تکنولوژی رفتن که نمونش رو میشه در قسمت eBay Desktop مشاهده کرد. با استفاده ازاین دسکتاپ میشه بدون نیاز به مرورگر به قسمت مزایده سایت eBay دسترسی داشت. در حالت عادی نیاز هست که شما با حساب کاربری خودتون به صورت آنلاین و زنده وارد سایت بشین و در مزایده ها شرکت کنید. اما حالا با استفاده از این دسکتاپ ساخته شده بر مبنای AIR میشه همه این کارها از وارد شدن به حساب کاربری تا شرکت در مزایده رو به صورت آفلاین انجام داد و در زمانی دیگر به هنگام آنلاین شده به سایت اصلی ارسال کرد.

لازمه استفاده از برنامه های مبتنی بر AIR داشتن افزودنی اجرا کننده اون ( همانند فلش پلیر) هست که از طریق این آدرس به صورت رایگان قابل دریافت هست. نصب این افزودنی بسیار ساده هست و پس از نصب از طریق میانبر های ایجاد شده قابل دسترس خواهد بود. از طریق این آدرس هم میشه کیت توسعه نرم افزاری (SDK) اون رو هم به منظور ساخت و توسعه برنامه های مبتنی بر AIR دریافت کرد.

از نقطه نظر امنیتی هم روی این تکنولوژی کار شده و به هنگام اجرای برنامه ها از طریق امضای دیجیتالی مشخص میشه که کدام برنامه ها معتبر هستن و کدامیک دارای امضا نیستن و هویتشون ناشناخته هست. با امضای دیجیتالی ضمیمه شده به راحتی میشه به هویت سازندگان برنامه پی برد و از بابت کارکرد امن و مطمئن برنامه اطمنیان پیدا کرد.

به هر حال با همه این تفاسیر AIR در ابتدای راه خودش هست و آینده درخشانی همچون Flash در انتظارش هست. این روز ها با توسعه اینترنت و نیاز روز افزون کاربران بهره گیری از چنین فن آوری هایی ضرورت پیدا میکنه و از طرف دیگه باعث میشه که پویایی و کارایی برنامه های مبتنی بر وب بهتر و بیشتر بشه. به هر حال توسعه دهندگان و برنامه نویسان نباید از حضور این فن آوری غافل بشن وباید به صورت از چنین فن آوری هایی جهت بودن در کورس رقابت استفاده کنند.

پیوستن به وب 2 با Adobe AIR بیشتر بخوانید »

markItUp، یک ویراستار ابر متن تر و تمیز

این روزا ویراستار های WYSIWYG به وفور در نت یافت میشن و کار رو برای توسعه دهنده ها، خصوصا کسایی که قصد ساختن برنامه های مدیریت محتوی رو دارن ساده کرده. اما من در این نوشته قصد ندارم یکی دیگه از این ویراستار ها رو معرفی کنم! بلکه می خوام یک ویراستار ابر متن تر و تمیز به اسم markItUp رو به شما معرفی کنم.

همون طور که مشخص شد این ویراستار برای نوشتن و ویرایش کدهایی از قبلی HTML, XML, BBcode و… هست. این ویراستار به راحتی میتونه هرفیلد TextArea ی مشخص رو تبدیل به یک ادیتور تر و تمیز و کارا بکنه. این ویراستار که بر مبنای jQuery ساخته شده علاوه بر کدهایی که گفتم می تونه از کد های سفارشی و ساخته شده توسط توسعه گر پشتیبانی کنه. این ویراستار بر اساس مجوز MIT/GPL انتشار یافته که به طور خلاصه میشه گفت کاملا رایگان هست و میشه ازش مادامی که مشخصات سازندگان اصلیش سر جاش باشه، همه جا و همه نوع استفاده کرد.

markItUp

با توجه به حجم نسبتا بالای سایر ادیتور ها و برنامه های Ajax ای، این ویراستار تونسته در حجمی قابل قبول ارائه بشه. حجم این ویراستار در حدود 15 کیلو بایت هست که البته نیاز به کتابخانه jQuery هم داره. به منظور سازگاری کامل با مرورگرهای مطرح دنیا این ویراستار با مرورگرهای IE6/7, Opera 9+, Firefox2+,Safari 3 تست شده و سازگار هست. از سایر ویژگی های این ویراستار میشه به سور خلاصه از موارد زیر نام برد:

» سرعت و یکپارچگی بیرونی ( unobtrusive )

توسعه دهندگان به سرعت و سهولت می تونند با تنها دو سه خط کد این ویراستار رو در برنامه های خودشون بگنجونند. منظور ازunobtrusive این هست که کلیه کدهای این مرورگر در فایلی مجزا و خارجی قرار میگره و در برنامه مد نظر و یا صفحه مورد نظر با درج تنها دو سه خط کد نمونه سازی میشن.

» پشتیبانی از میانبرهای صفحه کلید

این ویراستار میتونه کاملا بر مبنای میانبرهای استاندارد و تعریف شده از جانبه توسعه دهنده کار کنه که این ویژگی میتونه رضایت خاطر هر چه بیشتر کاربران رو تامین کنه.

» نوار ابزار و منو های پایین افتادنی

این ویراستار از یک نوار ابزار کارا و سایر المان های بصری رایج برنامه های دیداری بهر می بره که سبب میشه کار باهاش بسیار راحت و دلچسب بشه.

» قابلیت سفارشی سازی

به راحتی میشه این ویراستار رو بر اساس نیاز های و سلیقه های شخصی تغییر داد و سفارشی سازی کرد. حتی میشه در صورت داشتن مهارت کافی ویژگی های اون رو توسعه داد و ازش یه ویراستار کد همه فن حریف ساخت. فراتر از این میشه پوسته این ویراستار رو مطابق با شمایل پروژه مد نظر همسان کرد و ویرایش نمود.

» پیش نمایش Ajax ای

با قابلیت های Ajax ای که در این ویراستار خوشدست تعبیه شده میشه در هر زمان با زدن دکمه مربوطه یک پیش نمایش از کد های داخل ویراستار رو مشاهده کرد که این باعث میشه نتیجه کار به سرعت مورد ارزیابی قرار بگیره.

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

markItUp، یک ویراستار ابر متن تر و تمیز بیشتر بخوانید »