آموزش برنامه نویسی امن در زبان PHP
در این بخش دانلود رایگان کتاب آموزش برنامه نویسی امن در زبان PHP را به صورت فایل PDF و به زبان فارسی آماده کرده ایم که در قالب ۱۷ فصل و ۳۹۷ صفحه توسط مرکز مدیریت امداد و هماهنگی عملیات رخدادهای رایانه ای (مرکز ماهر) تهیه و منتشر شده است. در ادامه به مقدمه ای از فصل اول این کتاب پرداخته و فهرست سرفصل ها به همراه لینک دانلود رایگان قرار داده شده است.
مقدمه فصل اول
چرا میخواهیم از رمزنگاری استفاده کنیم؟ مطمئنا پاسخ این سوال آشکار است. در حالی که بخشی از اطلاعات ذخیره شده بر روی یک رایانه ممکن است عمومی باشند، بخش عظیمی از اطلاعات نیز وجود دارد که عمومی نیست و نباید عمومی باشد. رمزهای عبور و سایر اطلاعات مرتبط به دسترسی، اطلاعات شخصی با انواع مختلف، داده های حساس سازمانی و الی آخر. چنین اطلاعاتی باید در دسترس باشد؛ به همین دلیل است که از اول بر روی رایانه ریخته شده است. ولی این اطلاعات باید به گونه ای مخفی شود و از دسترس هر نوع طرف سومی که به صورت اتفاقی یا با اهداف شوم، ممکن است آنها را بیابد، دور گردد.
فهرست مطالب کتاب
فصل اول: استفاده از رمزنگاری (تئوری)
- تفاوت رمزنگاری و درهم سازی
- رمزنگاری
- در هم سازی (هش)
- قدرت الگوریتم
- نکته ای در خصوص قدرت رمز عبور
- الگوریتم های رمزنگاری پیشنهادی
- الگوریتم های متقارن
- تبادل کلید دیفی – هلمان – مرکل
- الگوریتم های نامتقارن
- روش های رمزنگاری ایمیل
- توابع درهم سازی پیشنهادی
- الگوریتم CRC32
- الگوریتم MD5
- الگوریتم SHA-1
- الگوریتم DSA
- الگوریتم های درهم سازی جدید
- الگوریتم های مربوطه
- الگوریتم Base64
- الگوریتم XOR
- اعداد تصادفی
- بلوک ها، حالات، و بردارهای اولیه
- استریم ها و بلوک ها
- حالات
- بردارهای آغازین
- خلاصه فصل
- الگوریتم های مربوطه
فصل دوم: استفاده از رمزنگاری
- نگهداری امن کلمه های عبور
- حفاظت از داده های حساس
- رمزنگاری متقارن در PHP : توابع mcrypt
- رمزنگاری متقارن در PHP : توابع RSA و OpenSSL
- تایید اعتبار داده های مهم
- تایید اعتبار با استفاده از دایجست ها
- تایید اعتبار با استفاده از امضا ها
- خلاصه فصل
فصل سوم: کنترل دسترسی (تایید صحت و اعتبار)
- تایید صلاحیت
- تایید صلاحیت HTTP
- تایید صلاحیت ابتدایی HTTP
- تایید صلاحیت دایجست HTTP
- تایید صلاحیت دو طرفه
- تایید صلاحیت مبتنی بر گواهی با استفاده از HTTPS
- استفاده از کلید های یک بار مصرف جهت تایید صلاحیت
- تایید صلاحیت شناسایی یگانه
- کربروس (سربروس ، Kerberos)
- ساختن سیستم شناسایی یگانه جهت خودتان
- خلاصه فصل
فصل چهارم: کنترل دسترسی (مجوزها و محدودیت ها)
- مجوزهای فایل سیستم یونیکس
- مقدمه ای بر مجوزهای یونیکس
- دستکاری مجوزها
- دایرکتوری های گروهی اشتراکی
- ابزار های PHP جهت کار کردن با کنترل های دسترسی فایل
- نگه داشتن توسعه دهندگان (و دایمون ها) در دایرکتوری های خانه خود
- حفاظت از سیستم در برابر خودش
- محدودیت های منابع
- سهم دیسک (Disk Quotas)
- محدودیت های منابع خود PHP
- حفاظت از پایگاه های داده
- مجوزهای فایل سیستم پایگاه داده
- کنترل دسترسی به پایگاه داده: جداول Grant
- تنظیمات امنیتی در نصب MySQL
- ارائه مجوزها به شکلی محافظه کارانه
- اجتناب از فعالیت شبک های غیر ایمن
- افزودن قابلیت Undo با پشتیبانی های متناوب
- حالت ایمن (Safe Mode) در PHP
- حالت ایمن چگونه کار می کند
- سایر ویژگی های حالت ایمن
- جایگزین های حالت ایمن
فصل پنجم: تایید اعتبار داده های ورودی کاربر
- به دنبال چه بگردیم؟
- ورودی حاوی متاکاراکترها
- نوع اشتباه ورودی
- ورودی بیش از حد بزرگ
- سوء استفاده از رابط های مخفی
- ورودی حاوی دستورات غیرمترقبه
- استراتژی هایی جهت تایید اعتبار داده های ورودی کاربر در PHP
- ایمن نمودن ورودی های PHP
- تنها اجازه مقادیر مورد انتظار برای متغیرهای ورودی را بدهید
- بررسی نوع، طول و فرمت ورودی
- پاکیزه نمودن مقادیر ارسالی جهت سایر سیستم ها
- آزمودن تایید اعتبار ورودی
- خلاصه فصل
فصل ششم: ممانعت از SQL INJECTION
- تزریق SQL چیست
- تزریق SQL چگونه کار می کند
- PHP و تزریق MySQL
- انواع ورودی کاربران
- انواع حملات تزریق
- تزریق با استفاده از دستور SELECT
- تزریق با استفاده از دستور UPDATE
- تزریق با استفاده از دستور DELETE
- تزریق چند کوئری
- ممانعت از تزریق SQL
- محدود نمودن همه مقادیر در کوئری
- بررسی انواع مقادیر ارسالی کاربران
- نادیده گیری هر کاراکتر مبهم در کوئری های خود
- ساخت یک لایه انتزاعی جهت بهبود امنیت
- انتزاع کامل
- آزمودن حفاظت خود در برابر تزریق
- خلاصه فصل
فصل هفتم: ممانعت از اسکریپتنویسی بین سایتی (XSS)
- تاریخچه
- XSS چگونه کار می کند
- اسکریپت نویسی
- دسته بندی حملات XSS
- نمونه حملات XSS
- حملات HTML و CSS
- حملات جاوا اسکریپت
- URI جعل شده
- تصویر جعل شده
- المان های اضافی فرم
- سایر حملات
- ممانعت از XSS
- SSL مانع SXX نمی شود
- استراتژی ها
- XSS در مرورگرها
- تست جهت حفاظت در برابر سوء استفاده XSS
- خلاصه فصل
فصل هشتم: جلوگیری از اجرای از راه دور
- اجرای از راه دور چگونه کار می کند
- خطرات اجرای از راه دور
- تزریق کد PHP
- افزودن کد PHP در فایل های ارسالی
- تزریق دستورات یا اسکریپت های شل
- استراتژی هایی جهت جلوگیری از اجرای از راه دور
- محدود نمودن پسوند های قابل قبول نام فایل جهت آپلود ها
- ذخیره آپلود ها خارج از روت سند وب
- پاکسازی ورودی کاربران غیرقابل اعتماد به eval
- اسکریپت های PHP روی سرورهای دیگر را استفاده نکنید (include)
- بررسی دستورات شل
- مراقب الگوهای preg_replace با تغییر دهنده e باشید
- تست جهت نقص های اجرای از راه دور
- خلاصه فصل
فصل نهم: تقویت امنیت جهت فایل های موقتی
- عملکردهای فایل های موقتی
- ویژگی های فایل های موقتی
- محل ذخیره سازی
- عملکرد
- ریسک ها
- جلوگیری از سوء استفاده از فایل های موقت
- مبهم نمودن مکان
- محدود نمودن مجوزها
- تنها در فایل های شناخته شده بنویسید
- تنها از فایل های شناخته شده بخوانید
- بررسی فایل های آپلود شده
- تست حفاظت در برابر هایجک
- خلاصه فصل
فصل دهم: جلوگیری از هایجک جلسه
- جلسات پایدار چگونه کار می کنند
- جلسات PHP
- یک جلسه نمونه
- سوء استفاده از جلسات
- هایجک کردن جلسه
- تثبیت
- جلوگیری از سوء استفاده از جلسه
- استفاده از لایه سوکت های ایمن
- استفاده از کوکی ها به جای متغیرهای GET_$
- طول عمر جلسه را تغییر دهید
- باز تولید ID ها جهت کاربران
- از کد تست شده بهره ببرید
- نادیده گرفتن راه حل های غیر موثر
- تست جهت حفاظت در برابر سوء استفاده از جلسه
- خلاصه فصل
فصل یازدهم: استفاده از کد های کپجا
- مقدمه
- انواع کپچا ها
- کپچا های متنی تصویری
- کپچا های صوتی
- کپچا های شناختی
- ایجاد یک تست کپچای مؤثر با استفاده از PHP
- مدیریت کپچا با استفاده از وب سرویس ارائه شده توسط سایت دیگر
- ایجاد کپچای توسط خود شما
- حمله به کپچا
- مشکلات بالقوه در استفاده از کپچا ها
- هایجک کردن کپچا ها نسبتا ساده است
- تولید کپچا ها نیازمند زمان و حافظه می باشد
- کپچا هایی که بیش ازحد پیچیده هستند ممکن است توسط انسان ها قابل خواندن نباشند
- حتی کپچا های نسبتا سرراست نیز ممکن است دچار مشکلات کاربری غیرقابل پیش بینی شوند
- خلاصه فصل
فصل دوازدهم: اجرای ایمن دستورات سیستمی
- عملیات خطرناک
- دستورات سطح ریشه (سطح root)
- دستورات با مصرف بالای منابع
- ایمن نمودن عملیات خطرناک
- ایجاد یک API جهت عملیات سطح root
- صف بندی عملیات دارای مصرف منابع بالا
- استراتژی های بهره برداری
- مدیریت عملیات با مصرف بالای منابع با یک صف
- خلاصه فصل
فصل سیزدهم: مدیریت ایمن فراخوان های رویه ای دوردست (RPC)
- RPC و وب
- HTTP و REST
- XML-RPC
- SOAP
- ایمن نگه داشتن یک رابط خدمات وب
- ارائه یک رابط ساده
- محدود نمودن دسترسی به API های وب
- ارسال ایمن زیردرخواست ها
- مدیریت تایم اوت های شبکه
- کش نمودن زیر درخواست ها
- اطمینان از صحت هدر های HTTP
- خلاصه فصل
فصل چهاردهم: تهدید ها و آسیب پذیری های بارگذاری فایل
- اعتبارسنجی فراداده های فایل
- اعتبارسنجی فراداده های فایل توسط لیست سیاه
- اعتبارسنجی فراداده نام فایل
- اعتبارسنجی فراداده پسوند فایل
- اعتبارسنجی فراداده های فایل توسط فهرست سفید
- اعتبارسنجی محتوای فایل
- شیوه های اعتبارسنجی توسط سرآیند “Content-Type”
- تشخیص نوع فایل با استفاده از برخی توابع API
- راهکارهای امنیتی جهت امن سازی سیستم بارگذاری فایل
- اعتبارسنجی های بارگذاری فایل و راه های دور زدن آنها
- بارگذاری فایل بدون ارزیابی
- ارزیابی mime type
- جلوگیری از پسوند های خطرناک
- پسوند های دوتایی
- پسوند های دوتایی (بخش دوم)
- بررسی سرآیند عکس
- پیشگیری از بارگذاری فایل با پسوند .htaccess
- راه حل های پیشنهادی
فصل پانزدهم: کوکی ها ، نشست ها و متغیر ها
- عدم بررسی متغیر ها
- نشست ها
- کوکی ها
فصل شانزدهم: حملات پیمایش دایرکتوری ها
فصل هفدهم: فراخوانی فایل ها از راه دور
نوشته کتاب آموزش برنامه نویسی امن در زبان PHP به صورت PDF فارسی اولین بار در سورس سرا - آموزش برنامه نویسی. پدیدار شد.