بحث های تخصصی کامپیوتر (همدان)

شبکه - برنامه نویسی- و غیره(delphi-c- pascal -php -asp-vb,...

بحث های تخصصی کامپیوتر (همدان)

شبکه - برنامه نویسی- و غیره(delphi-c- pascal -php -asp-vb,...

فایروال چیست؟

وسیله ای است که کنترل دسترسی به یک شبکه را بنابر سیاست امنیتی شبکه تعریف می کند. علاوه بر آن از آنجایی که معمولا یک فایروال بر سر راه ورودی یک شبکه می نشیند لذا برای ترجمه آدرس شبکه نیز بکار گرفته می شود.

 

شاخص های مهم یک فایروال قوی و مناسب

جهت ایجاد یک شبکه امن

 

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

2-  بازدید حجم بالایی از بسته های اطلاعات: یکی از تستهای یک فایروال ، توانایی آن در بازدید حجم بالایی از بسته های اطلاعاتی بدون کاهش چشمگیر کارایی شبکه است. حجم داده ای که یک فایروال می تواند کنترل کند برای شبکه های مختلف متفاوت است اما یک فایروال قطعاً نباید به گلوگاه شبکه تحت حفاظتش تبدیل شود.عوامل مختلفی در سرعت پردازش اطلاعات توسط فایروال نقش دارند. بیشترین محدودیتها از طرف سرعت پردازنده و بهینه سازی کد نرم افزار بر کارایی فایروال تحمیل می شوند. عامل محدودکننده دیگر می تواند کارتهای واسطی باشد که بر روی فایروال نصب می شوند. فایروالی که بعضی کارها مانند صدور اخطار ، کنترل دسترسی مبنی بر URL و بررسی وقایع ثبت شده را به نرم افزارهای دیگر می سپارد از سرعت و کارایی بیشتر و بهتری برخوردار است.

3-  سادگی پیکربندی: سادگی پیکربندی شامل امکان راه اندازی سریع فایروال و مشاهده سریع خطاها و مشکلات است.در واقع بسیاری از مشکلات امنیتی که دامنگیر شبکه های می شود به پیکربندی غلط فایروال بر می گردد. لذا پیکربندی سریع و ساده یک فایروال ، امکان بروز خطا را کم می کند. برای مثال امکان نمایش گرافیکی معماری شبکه  و یا ابزرای که بتواند سیاستهای امنیتی را به پیکربندی ترجمه کند ، برای یک فایروال بسیار مهم است.

4-  امنیت و افزونگی فایروال: امنیت فایروال خود یکی از نکات مهم در یک شبکه امن است.فایروالی که نتواند امنیت خود را تامین کند ، قطعا اجازه ورود هکرها و مهاجمان را به سایر بخشهای شبکه نیز خواهد داد.

 

 

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

 

     امنیت سیستم عامل فایروال : اگر نرم افزار فایروال بر روی سیستم عامل جداگانه ای کار می کند، نقاط ضعف امنیتی سیستم عامل ، می تواند نقاط ضعف فایروال نیز به حساب بیاید. بنابراین امنیت و استحکام سیستم عامل فایروال و بروزرسانی آن از نکات مهم در امنیت فایروال است.

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

 

انواع فایروال

 

     انواع مختلف فایروال کم و بیش کارهایی را که اشاره کردم ، انجام می دهند، اما روش انجام کار توسط انواع مختلف ، متفاوت است که این امر منجر به تفاوت در کارایی و سطح امنیت پیشنهادی فایروال می شود.بر این اساس فایروالها را به پنج گروه تقسیم می کنند.

 

1-  فایروالهای سطح مدار (Circuit-Level): این فایروالها به عنوان یک رله برای ارتباطات TCP عمل می کنند. آنها ارتباط TCP را با رایانه پشتشان قطع می کنند و خود به جای آن رایانه به پاسخگویی اولیه می پردازند.تنها پس از برقراری ارتباط است که اجازه می دهند تا داده به سمت رایانه مقصد جریان پیدا کند و تنها به بسته های داده ای مرتبط اجازه عبور می دهند. این نوع از فایروالها هیچ داده درون بسته های اطلاعات را مورد بررسی قرار نمی دهند و لذا سرعت خوبی دارند. ضمنا امکان ایجاد محدودیت بر روی سایر پروتکلها ( غیر از TCP) را نیز نمی دهند.

2-  فایروالهای پروکسی سرور : فایروالهای پروکسی سرور به بررسی بسته های اطلاعات در لایه کاربرد می پردازد. یک پروکسی سرور درخواست ارائه شده توسط برنامه های کاربردی پشتش را قطع می کند و خود به جای آنها درخواست را ارسال می کند.نتیجه درخواست را نیز ابتدا خود دریافت و سپس برای برنامه های کاربردی ارسال می کند. این روش با جلوگیری از ارتباط مستقیم برنامه با سرورها و برنامه های کاربردی خارجی امنیت بالایی را تامین می کند. از آنجایی که این فایروالها پروتکلهای سطح کاربرد را می شناسند ، لذا می توانند بر مبنای این پروتکلها محدودیتهایی را ایجاد کنند. همچنین آنها می توانند با بررسی محتوای بسته های داده ای به ایجاد محدودیتهای لازم بپردازند. البته این سطح بررسی می تواند به کندی این فایروالها بیانجامد. همچنین از آنجایی که این فایروالها باید ترافیک ورودی و اطلاعات برنامه های کاربردی کاربر انتهایی را پردازش کند، کارایی آنها بیشتر کاهش می یابد. اغلب اوقات پروکسی سرورها از دید کاربر انتهایی شفاف نیستند و کاربر مجبور است تغییراتی را در برنامه خود ایجاد کند تا بتوان داین فایروالها را به کار بگیرد.هر برنامه جدیدی که بخواهد از این نوع فایروال عبور کند ، باید تغییراتی را در پشته پروتکل فایروال ایجاد کرد.

3-  فیلترهای Nosstateful packet : این فیلترها روش کار ساده ای دارند. آنها بر مسیر یک شبکه می نشینند و با استفاده از مجموعه ای از قواعد ، به بعضی بسته ها اجازه عبور می دهند و بعضی دیگر را بلوکه می کنند. این تصمیمها با توجه به اطلاعات آدرس دهی موجود در پروتکلهای لایه شبکه مانند IP و در بعضی موارد با توجه به اطلاعات موجود در پروتکلهای لایه انتقال مانند سرآیندهای TCP و UDP اتخاذ می شود. این فیلترها زمانی می توانند به خوبی عمل کنند که فهم خوبی از کاربرد سرویسهای مورد نیاز شبکه جهت محافظت داشته باشند. همچنین این فیلترها می توانند سریع باشند چون همانند پروکسی ها عمل نمی کنند و اطلاعاتی درباره پروتکلهای لایه کاربرد ندارند.

4-  فیلترهای ٍStateful Packet : این فیلترها بسیار باهوشتر از فیلترهای ساده هستند. آنها تقریبا تمامی ترافیک ورودی را بلوکه می کنند اما می توانند به ماشینهای پشتشان اجازه بدهند تا به پاسخگویی بپردازند. آنها این کار را با نگهداری رکورد اتصالاتی که ماشینهای پشتشان در لایه انتقال ایجاد می کنند، انجام می دهند.این فیلترها ، مکانیزم اصلی مورد استفاده جهت پیاده سازی فایروال در شبکه های مدرن هستند.این فیلترها می توانند رد پای اطلاعات مختلف را از طریق بسته هایی که در حال عبورند ثبت کنند. برای مثال شماره پورت های TCP و UDP مبدا و مقصد، شماره ترتیب TCP و پرچمهای TCP. بسیاری از فیلترهای جدید Stateful می توانند پروتکلهای لایه کاربرد مانند FTP و HTTP را تشخیص دهند و لذا می تواننداعمال کنترل دسترسی را با توجه به نیازها و سرعت این پروتکلها انجام دهند.

5-  فایروالهای شخصی : فایروالهای شخصی ، فایروالهایی هستند که بر روی رایانه های شخصی نصب می شوند.آنها برای مقابله با حملات شبکه ای طراحی شده اند. معمولا از برنامه های در حال اجرا در ماشین آگاهی دارند و تنها به ارتباطات ایجاد شده توسط این برنامه ها اجازه می دهند که به کار بپردازند نصب یک فایروال شخصی بر روی یک PC بسیار مفید است زیرا سطح امنیت پیشنهادی توسط فایروال شبکه را افزایش می دهد. از طرف دیگر از آنجایی که امروزه بسیاری از حملات از درون شبکه حفاظت شده انجام  می شوند ، فایروال شبکه نمی تواند کاری برای آنها انجام دهد و لذا یک فایروال شخصی بسیار مفید خواهد بود. معمولا نیازی به تغییر برنامه جهت عبور از فایروال شخصی نصب شده (همانند پروکسی) نیست.

 

موقعیت یابی برای فایروال

 

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

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

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

      مسیریابی نامتقارن : بیشتر فایروالهای مدرن سعی می کنند اطلاعات مربوط به اتصالات مختلفی را که از طریق آنها شبکه داخلی را به شبکه عمومی وصل کرده است، نگهداری کنند. این اطلاعات کمک می کنند تا تنها بسته های اطلاعاتی مجاز به شبکه خصوصی وارد شوند. در نتیجه حائز اهمیت است که نقطه ورود و خروج تمامی اطلاعات به/از شبکه خصوصی از طریق یک فایروال باشد.

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

 

قالب های با پسوند php

صفحاتی با پسوند PHP

کمتر کاربر اینترنت را میتوان یافت که تاکنون با صفحاتی با پسوند PHP برخورد نکرده باشد و البته این پسوند نامی آشنا برای طراحان و برنامهنویسان وب است.                                                                            

   پی اچ پی (PHP) یکی از محبوبترین و رایجترین زبانهای برنامهنویسی برای ایجاد صفحات پویا در وب است و کمتر خواستهای در محیط وب وجود دارد که در PHP قادر به انجام آن نباشیم. از ایجاد یک صفحه ساده برای پردازش اطلاعات فرمها، ارتباط با بانکهای اطلاعات، کار با سوکتهای TCP، پردازش فرمتهای PDFوZIP و حتی تصویر بخشی از توانایی این زبان است.

پی اچ پی چگونه کار میکند؟

   نوشتن یک برنامه پی اچ پی شبیه ایجاد یک صفحه HTML است و تنها با این تفاوت که کدهای این زبان در داخل صفحات و دربین کدهای HTML درج میشود و البته طبیعی است که یک فایل پی اچ پی میتواند تنها شامل کدهای PHP باشد.با توجه به این که PHP یک زبان طرف سرویسدهنده است، و بنابراین برای اجرا، اسکریپتهای آن باید آنها را به کامپیوتر سرویسدهنده وب (مانند سیستم Windows 2000 و نرمافزار IIS) انتقال دهیم و حالا با تایپ نام فایل آن در گردشگر اینترنت میتوانیم آنرا اجرا و خروجی احتمالی را مشاهده کنیم.

طبیعی است که در سمت سرویسگیرنده (کاربر سایت)امکان مشاهده کدها وجود ندارد.

   پس از درخواست برای اجرای یک اسکریپت PHP فایل حاوی کدهای PHP به برنامه مفسر PHP انتقال داده شده(معمولا php.exe) و این برنامه بعد از تفسیر واجرای اسکریپت ،نتیجه را به سمت کاربر میفرستد.

   در زیر نمونهای از یک اسکریت ساده PHP درج شده است. این برنامه پیغام ارسالی توسط کاربر را میگیرد (این پارامتر میتواند توسط یک فرم یا در نوار آدرس گردشگر اینترنت تایپ شود) و آن را در قالب HTML برای کاربر ارسال میکند.

 

کد HTMLنتیجه حاصل که کاربر امکان مشاهد آنرا دارد
http://www.mysite.com/test.php?message=hello

اسکریت PHP که در سمت سرویس دهنده اجرا میشود

<HTML>
<BODY>
hello
</BODY>
</HTML>

<HTML>
<BODY>
<?php
echo $_GET['message'];?>
</BODY>
</HTML>

 از آنجا که آموزش این زبان در این مقاله نمیگنجد، بنابراین در ادامه نگاهی به تاریخچه ، مزایا و احتمالا معایب آن خواهیم داشت.

تاریخچه

   پی اچ پی در سال 1994 توسط راسموس لردرف Rasmus Lerdorf و برای استفاده شخصیاش ایجاد شد. او بعدها و در سال 1995 نسخه حرفهایتر از مفسر زبان PHP به نام Version 2 PHP/FI را عرضه کرد، و در سال 97 تعداد سایتهایی که از PHP استفاده میکردند به بیش از 50000 رسید و امروزه نیز میلیونها سایت از آن استفاده میکنند. سایتهای مشهوری چون Alltheweb و mamma از این زبان استفاده میکنند و حتی Yahoo نیز در حال شروع استفاده از این زبان برای توسعه وب سایتهای خود است.

پی اچ پی زبانی برای همه سیستم عاملها

   یکی از برترین مزایای زبان PHP سازگاری آن با اکثر سیستم عاملها و نرمافزارهای وب سرور (مانند IIS و Apache) است. برخی از دیگر زبانها و تکنولوژیها مانند ASP محدود به سیستم عامل windows است و پشتیبانی از آن در دیگر سیستم عاملها بسیار پرهزینه و محدود است، و برخی نیز مانند JSP مشکلاتی با برخی نرمافزارهای وب سرور دارد.

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

   در PHP امکان استفاده از برخی از امکانات خاص سیستم عاملهای مشهور نیز در نظر گرفته است که برای نمونه میتوان از پشتیبانی از تکنولوژی DCOM و یا Windows API نام برد.

نسخههای جدید مفسر PHP سازگار با دیگر تکنولوژیهای خاص وبسرورها مانند ISAPI نیز میباشد.

پی اچ پی رایگان و Open Source

   تهیه برنامه مفسر PHP برای همه سیستم عاملها رایگان است و علاقهمندان میتوانند آخرین نسخه مفسر این زبان را از سایت رسمی PHP بارگذاری (Download) کند.

   همچنین امکان تهیه رایگان سورس مفسر پی اچ پی نیز فراهم است ، و این مسئله علاوه بر این که در گسترش امکانات این زبان بسیار موثر بوده است، مزیتی برای شرکتها و توسعهدهندگان برای انتخاب این زبان است چرا که پشتیبانی و اعتماد به آن را راحتتر کرده است.

   بسیاری از ویرایشگرهای حرفهای این زبان نیز یا رایگان هستند و یا با هزینه بسیار کم میتوان آنها را تهیه کرد، در حالی که دیگر تکنولوژیها، مثلاً تهیه پلاتفورمهای جاوا هزینه هنگفتی دارد و همچنین کار حرفهای با تکنولوژی .NET نیز نیاز به تهیه Visual Studio.NET و پرداخت هزینه چند صد دلاری است.
 

سرعت بالای تفسیر و اجرای PHP

   پی اچ پی یکی از سریعترین زبانها در نوع خود است. تفسیر و اجرای یک اسکریپ php به طور متوسط تا سه و چهار برابر یک اسکریپ ASP است. (البته باید در نظر داشته باشیم که IIS با Cach اسکریپتهای ASP سرعت اجرای آنها را در دفعات بعد بالا میبرد)

   همچنین در ASP استفاده زیادی از اشیا COM میشود که باعث کاهش سرعت و مصرف منابع سیستم میشود در حالی که در PHP بسیاری از امکانات و حتی برقراری ارتباط با یکی محبوبترین نرمافزار مدیریت بانکهای اطلاعاتی (mySql به صورت توکار نهاده شده است.

   شرکت Zend که تهیه کننده فعلی موتور مفسر و پشتیبانی کننده آن است، محصولات دیگری را نیز در جهت بهینه کردن سرعت اجرای PHP ارائه کرده است این محصولات با افزایش سرعت تفسیر و همچنین ذخیره کردن نتیجه تفسیر (Cash) باعث افزایش چندین برابر اجرای آن میشوند.

ساختار مناسب و امکانات بالا در PHP

   همان طور که در ابتدای مقاله اشاره شد، کمتری نیازی در برنامهنویسی تحت وب وجود دارد که در PHP امکان رفع آن نباشد. پی اچ پی شامل کتابخانهای غنی از توابعی است که امکان پردازش اطلاعات فرمها، کار با بانکهای اطلاعاتی، فایلهای متنی و باینری، فایلهای گرافیکی، PDF ، ZIP و پروتکلهای TCP ، FTP ، DNS ،SMTP و ... را برای برنامهنویس فراهم میکند، این را مقایسه کنید با ASP که به طور مستقل امکان Upload File ،ارسال ایمیل یا کار با فایلهای باینری را ندارد.

   همچنین PHP یکی از بهترین پشتیبانیها را از نرمافزارهای بانک اطلاعات دارد. mySql,Sql Server,mSql,dBase,Oracle,IBM DB2,PostgreSQL,InterBase و بسیاری از نرمافزارهای دیگر در پی اچ پی قابل استفاده هستند و البته امکان کار با ODBC و COM برا ی استفاده از بانکهای Ms Access و دیگرمحصولات نیز هست.

   قدرت زبان پی اچ پی تنها در کتابخانه توابع آن نیست، پشتیبانی بسیار خوب از برنامهنویسی شیءگرا (OOP) و کار آسان و سریع با متغیرها از مزایای دورنی این زبان است.

معایب

حال که از حسن PHP گفتیم، بد نیست اشارهای نیز به برخی معایب آن داشته باشیم.

   نحو (syntax) زبان PHP بسیار شبیه زبان C++ و Perl است. این اگر چه باعث استقبال از این زبان توسط برنامهنویسان C و یا Perl شد، اما این نحو برای بسیاری از طراحان صفحات وب چندان آسان نیست و بسیاری معتقد هستند که تکنولوژی ASP و زبان VBScript آسانتر و قابل درکتر است و همچنین JSP و زبان جاوا نیز به دلیل محبوبیت و ساختار قدرتمند آن مورد توجه است.

   یک اشکال دیگر PHP عدم پشتیبانی خوب آن از یونیکد و به خصوص زبان فارسی است، حتی آخرین نسخههای این زبان نیز امکان سورت(Sort) صحیح متون فارسی را ندارد. البته این اشکال با کامپایل مجدد یا کمی برنامهنویسی قابل حل است.

از کجا شروع کنیم ؟

   تقریبا میتوان گفت اگر دارای هر سیستم عاملی هستید میتوانید استفاده و کار با این زبان را شروع کنید؛ تنها کافی است به سایت رسمی زبان PHP به آدرس http://www.php.net بروید، و نسخه مفسر این زبان را با توجه به سیستم عامل خود بارگذاری (Download) کنید. راهنما و مرجع دستورات و توابع این زبان در همین سایت قراردارد.

   همچنین سایت http://www.IranPHP.net (که به همت آقای هاشمی به زبان فارسی ایجاد شده است) میتواند مکانی مناسب برای حل مشکلات و تماس با دیگر برنامهنویسان PHP باشد.