شرح: شرایطی وجود دارد که شما نمی خواهید کل محتوای صفحه را در یک بار برداشت کنید. به عنوان مثال، در بخش " پرسش و پاسخ"برای برداشت فقط اسامی سوالات. و اگر یک فرد به پاسخ به یک سوال خاص علاقمند باشد، می تواند پاسخ را باز کند، و هنگامی که او تماشا می کند، پس نزدیک است. این راحتی صفحه و فشرده سازی آن را ایجاد می کند. و برای این آماده شدم ساده اسکریپت در جاوا اسکریپتاجازه می دهد تا شما را باز کنید، یا یک متن خاص را پنهان کنید (به طور کلی، عناصر خاص)، یعنی ایجاد کنید متن پنهان در جاوا اسکریپت.
نتیجه: با کلیک بر روی نام سوال. اگر دوباره کلیک کنید، پاسخ دوباره چسبیده است.
سوال 1.
پاسخ شماره 1
سوال 2.
پاسخ شماره 2
کد جاوا اسکریپت (قرار دادن بین برچسب ها و):
کد HTML (قرار دادن بین برچسب ها و):
سوال 1.
سوال 2.
صادقانه، برای هر توسعه دهنده لازم نیست، عمدتا هر کد جاوا اسکریپت به راحتی به مرورگر نگاه می کند، و بنابراین هیچ دلیلی خاصی برای پنهان کردن کد شما وجود ندارد. این، به همین دلیل صحبت کردن، قابل مشاهده است، چه چیزی نمی تواند پنهان شود. با این حال، بچه هایی هستند که بسیار خجالتی هستند که کد خود را به هر کسی نشان دهند، با توجه به اینکه این اموال نمی تواند سرقت کند، گفت: کتابخانه ها. شما یک سرویس آنلاین ایجاد کرده اید، به طور خاص یک کتابخانه پیچیده قدرتمند ایجاد کرده اید که عملیات خاصی را انجام می دهد، هیچ گونه آنالوگ از خدمات شما وجود ندارد، هیچ کتابخانه شما وجود ندارد، و به طور طبیعی شما نمی خواهید اسکریپت خود را برای دیدن هر (توسعه دهنده) و می توانید انجام دهید مثال مشابه، حتی بهتر است. البته، هیچ چیز اشتباهی با انجام کاری بهتر است، تکامل، اما از نظر کسب و کار، رقبا تنها در دست هستند.
برای این مورد نیاز است؟
شما فقط باید الگوریتم را درک کنید و سعی کنید آن را بهبود ببخشید، و تجربه خود را به عنوان اسکریپت های مخفی تجدید نظر کردم. اولین چیزی که ما نیاز داریم این است که این کار را در سرور واقعی (محلی) آزمایش کنیم، من این کار را با Denwer انجام خواهم داد سرور محلی.ولی)برای آزمایش، یک دایرکتوری را بر روی سرور ایجاد کنید.
من ادامه میدهم دیسک مجازی، من این درایو را دارم، برو به پوشه خانه بروید
ایجاد دایرکتوری اسکریپت، و در داخل یک پوشه WWW ایجاد کنید، به عنوان یک نتیجه، شما موفق خواهید شد: صفحه اصلی / اسکریپت / www / - پس از آن، مطمئن شوید که سرور را به روز رسانی (راه اندازی مجدد denwer)
ب) یک فایل index.php ایجاد کنید - به عنوان مثال، این ماست صفحه اصلی سایت، و در اینجا ما باید اسکریپت های پنهان را حذف کنیم. همچنین پوشه "JS" را در این پوشه ایجاد کنید.
برای کار ما، درخواست های AJAX مورد نیاز خواهد بود، زیرا شما می توانید از توابع عقلانی خود استفاده کنید، اما اگر پروژه شما به اندازه ای رشد کند که نیاز به استفاده از جلوه های ویژه، رویدادها، کتابخانه را متصل می کند، و من در پیشبرد جی کوئری ارتباط برقرار می کنم در ریشه پوشه "JS" اضافه کردن jquery.js.
سپس در همان پوشه ایجاد کنید پوشه جدیداسکریپت هایی که ما باید پنهان کنیم، در آن ذخیره می شود. من آن را "امنیت" نامگذاری خواهم کرد:
که در)ما کد پیش نمایش را در index.php استخدام می کنیم
همانطور که می بینید، یک بلوک وجود دارد
پی اچ پی نقش خواندن اسکریپت های خود را که بر روی سرور مسدود می شود، فرض می کند و نمی تواند به آنها اعمال شود.
اما ابتدا اجازه دهید اسکریپت هایمان را ایجاد کنیم که می خواهیم پنهان شویم.
د) در پوشه امنیتی، Script1.js و Script2.js را با چنین محتوایی ایجاد کنید:
به عنوان مثال، کافی است! در حال حاضر، به طوری که آن را غیر ممکن است با آنها تماس بگیرید، شما باید از آن در سرور بپرسید، این به لطف file.htaccess انجام می شود.
HTACCESS یک فایل پیکربندی است که توسط توسعه دهنده، کاربر این سرور تنظیم شده است.
HTACCESS چنین محتوایی دارد:
پس از آن، در درخواست:
شما این را خواهید دید:
بنابراین، پوشه امنیتی شما از چشم های کنجکاو پنهان شده است، غیر قابل دسترس است.
اگر سعی می کنید اسکریپت ها را وصل کنید:
سپس در هر صورت، فایل های شما اعدام نخواهد شد، زیرا آنها در سطح جهانی توسط سرور پنهان می شوند
e)بازگشت به برنامه بلوک پی اچ پی در index.php
خط پایین این است که پی اچ پی دسترسی به تمام فایل های موجود در سرور دارد، صرفنظر از اینکه آیا آنها پنهان هستند یا نه، یعنی اگر شما ثبت نام کنید:
سپس ب. این مورد ما محتویات اسکریپت پنهان ما را خواهیم دید.
با این حال، از سرور دیگری، محتویات اسکریپت ما را نمی توان مشاهده کرد، و یک پیام خطا 500 بازگشتی است. این دست ماست، بنابراین سایت های دیگر قادر به خواندن فایل های پنهان ما نخواهند بود.
e)این نتیجه نتیجه پایان خواهد بود:
و اکنون ما با چگونگی آن کار می کنیم. جی کوئری یک پرس و جو پست را اجرا می کند (این کمک می کند تا از سوراخ در index.php جلوگیری شود) در سرور "index.php؟ js \u003d نتیجه"، یک چک وجود دارد، اگر درخواست از سرور ما (stros () عملکرد و آدرس ما سرور "http: / / script" - C برای حساب این مثال)، سپس اسکریپت پس از متغیر، یعنی آدرس اسکریپت پنهان ما را بررسی می کند و نتیجه متن را می دهد. جی کوئری انجام شده () روش پاسخ را در قالب این محتوای متن دریافت می کند، و این متن را می توان به یک کار جاوا اسکریپت تبدیل کرد، این باعث می شود که عملکرد استاندارد Cross-tram Eval ()؛
در نهایت
ما نتیجه ما را دریافت می کنیم، اسکریپت های ما را نمی توان از طریق کنسول مرورگر به صورت ایستا یا پویا مشاهده کرد، اما کار خود را آسان می کند. این اسکریپت ها و توابع آنها به راحتی اجرا می شود. با این حال، لازم است به خوبی برای اعمال این تکنیک فکر کنید، همانطور که در این مورد مسئله عملکرد، سرعت افزایش یافته است. تابع Eval (کد) در میان توسعه دهندگان جاوا اسکریپت این شرارت محسوب می شود و توصیه می شود از آنالوگ از عملکرد جدید («بازگشت» کد استفاده کنید)، هرچند که دومی نمی داند چگونه می توان توابع را در داخل تعیین کرد، یعنی اگر تعریف تابع در متغیر شما ثبت شود ، کد \u003d "تست عملکرد () (هشدار (1)؛)؛ تست ()؛ "، کد برآورده نخواهد شد، یعنی Eval () به تمام موارد زندگی نزدیک می شود، حقیقت، ظرافت های خود را دارد که هنوز نیاز به خواندن دارد.این که آیا تا به حال پنهان کردن شما را به پنهان کردن از بیگانگان در صفحه اسکریپت خود، که پیاده سازی ظاهر زیبا زیبا از یک منو و یا انجام اقدامات دیگر که شما نمی خواهید به زودی در هر سایت دوم را ببینید؟
اگر چنین است، روش توصیف شده در این مقاله به شما در رابطه با پرونده های کد مفید خواهد بود. در عین حال، من رزرو را در یک زمان انجام خواهم داد که این روش 100٪ نیست، اما از اکثر حرفه ای و بخشی از متخصصان محافظت خواهد شد.
تئوری
فرض کنید ما صفحه nojs.php داریم، و در آن اسکریپت secret.js که باید پنهان شود. مرورگر و کاربر می تواند یک اسکریپت از سرور را به روش های زیر دریافت کند:- بارگذاری اسکریپت به طور مستقیم بر روی صفحه ارسال شده یا با DOM بارگذاری شده است؛
- اسکریپت را در پنجره مشاهده کنید کد منبع صفحه;
- صرفه جویی در صفحه با تمام فایل ها در هارد دیسک؛
- وارد یک URL مستقیم در نوار آدرس.
در مورد دوم و سوم، آن را توسط تمام مرورگرها منتقل نمی شود (Chrome، فایرفاکس یک اسکریپت قبلا دانلود شده را از حافظه پنهان صادر می کند؛ اپرا، یعنی دوباره اسکریپت را بارگذاری می کند، اما بدون ارسال ارسالی).
در مورد چهارم، مرجع به هیچ یک از این چهار مرورگر منتقل نمی شود.
اگر جاوا اسکریپت را به صورت پویا با چک کردن هدر ارجاع در پرس و جو به صورت پویا انجام دهید، ما بلافاصله از اپرا محافظت می کنیم و به عنوان مثال، برای Crome و Firefox باید چیزی را برای ضبط آماده کنیم. ما ابتدا یک اسکریپت را دانلود میکنیم، که به نوبه خود یک اسکریپت دیگر را بارگذاری می کند، در حالی که هر دو دانلود برای ارسالی HTTP بررسی خواهند شد. روش علمی مشخص شده است که اگر شما به صورت پویا یک اسکریپت را در صفحه document.createeelement ("اسکریپت" ایجاد کنید) ایجاد کنید و سپس آن را از صفحه حذف کنید، سپس اسکریپت به طور معمول کار خواهد کرد، اما ذخیره نخواهد شد.
تمرین
nojs.php
این صفحه هدف را برای دانلود script1.php حمل می کندheader("Content-Type:text/html;charset=utf-8"); ?>