نمایش نتایج 1 تا 27 از 27

نام تاپیک: چگونه می توان از سرقت فایل های js جلوگیری کرد؟؟؟؟

  1. #1
    کاربر دائمی آواتار aminghaderi
    تاریخ عضویت
    بهمن 1387
    محل زندگی
    مشهد
    پست
    1,557

    چگونه می توان از سرقت فایل های js جلوگیری کرد؟؟؟؟

    با سلام و درود خدمت اساتید و دوستان
    چگونه می توان از سرقت فایل های js جلوگیری کرد؟؟؟؟
    احتمالا برای شما هم پیش آمده که بخواهید یه فایل جاوااسکریپتی که جزء یکی از بخش های اصلی سایتتون محصوب می شود را از دسترس غیر مجاز (Download) حفظ کنید، اینکار چگونه صورت می گیرد و تا چه حدی مطمئن هست؟؟؟؟
    من شنیدم با عوض کردن پسوند ها permission فایل ها تغیر پیدا می کنه؟!
    مثلا اگر پسوند فایل js رو به aspx تغیر بدیم ، می شود از دسترسی به فایل جلو گیری کرد ؟!

    با سپاس فراوان

  2. #2
    کاربر دائمی آواتار ahrimaneahurai
    تاریخ عضویت
    فروردین 1388
    محل زندگی
    ایران
    پست
    554

    نقل قول: چگونه می توان از سرقت فایل های js جلوگیری کرد؟؟؟؟

    فکر نکنم بشه
    چون جاوا برای کلاینت هست و باید دانلود شه تا اجرا شه. پس طرف می تونه برداره.
    منم کنجکاو شدم

  3. #3

    نقل قول: چگونه می توان از سرقت فایل های js جلوگیری کرد؟؟؟؟

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

  4. #4
    کاربر دائمی آواتار aminghaderi
    تاریخ عضویت
    بهمن 1387
    محل زندگی
    مشهد
    پست
    1,557

    نقل قول: چگونه می توان از سرقت فایل های js جلوگیری کرد؟؟؟؟

    نقل قول نوشته شده توسط Alireza_Salehi مشاهده تاپیک
    خیلی زحمت نکشید فایلهای js فایلهای متنی هستند و حتی اگر پسوند آنها را عوض کنید باز هم قابل مشاهده هستند.
    برادر مگه فایل های aspx چه فایل هایی هستند؟! اونها هم که متنی هستند؟! در صورت درخواست صفحه aspx سرور اجازه دسترسی نباید بدهد؟! درسته؟؟؟
    چون باید با فایل های اصلی اشتباه بگیرد ، البته من این مورد رو هنوز امتحان نکردم ، ولی به منطقی به نظرمی رسید؟!
    البته کلام شما متینه و من شخصا در اولین فرست این مورد رو امتحان می کنم.
    و لی باید روشی باشه چون من شخصا چند تا سایت (داخلی) خوب می شناسم که سمت کلاینت کلی کد جاوا اسکریپت هندل می کنند و لی اصلا از فایل هایی با پسوند js خبری نیست ولی جاوا که غیر فعال باشه سایت ها کار نمی کنند؟!
    نمی دونم ولی من به این مورد نیاز دارم ، شده باشه به صورت اجکس کد ها رو داخل پیج تزریق کنم ، این کار رو می کنم تا کاربر دسترسی به فایل ها نداشه باشه ، تنها مشکل من برای این کار عدم دسترسی المنت ها توسط JQuery هست که اونم با یکم تحلیل سنگین تر شاید قابل اجرا باشه؟!
    ولی من یه راه ساده می خوام چون همین الانش کلی کد باید سمت کلاینت اجرا بشه ، نمی خوام اگه کامپیوتر کاربر ضعیف بود به مشکل تضعیف سرعت بخوره؟!

  5. #5

    نقل قول: چگونه می توان از سرقت فایل های js جلوگیری کرد؟؟؟؟

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

  6. #6

    نقل قول: چگونه می توان از سرقت فایل های js جلوگیری کرد؟؟؟؟

    نقل قول نوشته شده توسط aminghaderi مشاهده تاپیک
    با سلام و درود خدمت اساتید و دوستان چگونه می توان از سرقت فایل های js جلوگیری کرد؟؟؟؟ احتمالا برای شما هم پیش آمده که بخواهید یه فایل جاوااسکریپتی که جزء یکی از بخش های اصلی سایتتون محصوب می شود را از دسترس غیر مجاز (Download) حفظ کنید، اینکار چگونه صورت می گیرد و تا چه حدی مطمئن هست؟؟؟؟
    من شنیدم با عوض کردن پسوند ها permission فایل ها تغیر پیدا می کنه؟! مثلا اگر پسوند فایل js رو به aspx تغیر بدیم ، می شود از دسترسی به فایل جلو گیری کرد ؟! با سپاس فراوان
    سلام.
    هدفتون از اینکار چیه؟ اگر اطلاعات محرمانه ای دارید که میخواهید به این طریق از اونها محافظت کنید، این روش اصلا صحیح نیست. در حقیقت در گام نخست، اصلا نباید چنین داده ای با این اهمیت به دست Client برسه.... اما اگر هدفتون محافظت از نوشتن کدهای Script و مشکل تر کردن خوانایی اونها برای افراد دیگه هستش، میتونید از Packer هایی که به این منظور وجود دارن استفاده کنید. طبیعتا اونها هم 100% از کد شما محافظت نخواهند کرد و روشهایی برای بازگرداندن کد وجود داره، اما بدین شکل جلوی بسیاری از افراد رو خواهید گرفت.

    بعنوان مثال، کد ساده alert('test'); توسط Packer به این کد میتونه تبدیل بشه:


    eval(function(p,a,c,k,e,r){e=String;if(!''.replace (/^/,String)){while(c--)r[c]=k[c]||c;k=[function(e){return r[e]}];e=function(){return'\\w+'};c=1};while(c--)if(k[c])p=p.replace(new RegExp('\\b'+e(c)+'\\b','g'),k[c]);return p}('0(\'1\');',2,2,'alert|test'.split('|'),0,{}))


    Packer یک JavaScript Compressor ای هستش که نسخه های قبلی jQuery از اون برای Pack کردن کد استفاده میکردن (و نه Base62 کردن اون!)...

    موفق باشید.

  7. #7

    نقل قول: چگونه می توان از سرقت فایل های js جلوگیری کرد؟؟؟؟

    نقل قول نوشته شده توسط aminghaderi مشاهده تاپیک
    برادر مگه فایل های aspx چه فایل هایی هستند؟! اونها هم که متنی هستند؟! در صورت درخواست صفحه aspx سرور اجازه دسترسی نباید بدهد؟! درسته؟؟؟
    چون باید با فایل های اصلی اشتباه بگیرد ، البته من این مورد رو هنوز امتحان نکردم ، ولی به منطقی به نظرمی رسید؟!
    البته کلام شما متینه و من شخصا در اولین فرست این مورد رو امتحان می کنم.
    و لی باید روشی باشه چون من شخصا چند تا سایت (داخلی) خوب می شناسم که سمت کلاینت کلی کد جاوا اسکریپت هندل می کنند و لی اصلا از فایل هایی با پسوند js خبری نیست ولی جاوا که غیر فعال باشه سایت ها کار نمی کنند؟!
    نمی دونم ولی من به این مورد نیاز دارم ، شده باشه به صورت اجکس کد ها رو داخل پیج تزریق کنم ، این کار رو می کنم تا کاربر دسترسی به فایل ها نداشه باشه ، تنها مشکل من برای این کار عدم دسترسی المنت ها توسط JQuery هست که اونم با یکم تحلیل سنگین تر شاید قابل اجرا باشه؟!
    ولی من یه راه ساده می خوام چون همین الانش کلی کد باید سمت کلاینت اجرا بشه ، نمی خوام اگه کامپیوتر کاربر ضعیف بود به مشکل تضعیف سرعت بخوره؟!
    با ابزارهایی مثل firebug کل اسکریپتی که لود می شود حالا با هر پسوند و شکل و شمایلی که باشه قابل بازیابی است...
    وقتی اسکریپت سمت کلاینت داره اجرا میشه یعنی حتما یک فایل اسکریپت لود شده است. پسوندش یا تزریق شدن یا ... مهم نیست. وقتی اسکریپتی اجرا شده یعنی یه جایی هست.

  8. #8
    کاربر دائمی آواتار aminghaderi
    تاریخ عضویت
    بهمن 1387
    محل زندگی
    مشهد
    پست
    1,557

    نقل قول: چگونه می توان از سرقت فایل های js جلوگیری کرد؟؟؟؟

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

  9. #9
    کاربر دائمی آواتار aminghaderi
    تاریخ عضویت
    بهمن 1387
    محل زندگی
    مشهد
    پست
    1,557

    نقل قول: چگونه می توان از سرقت فایل های js جلوگیری کرد؟؟؟؟

    نقل قول نوشته شده توسط mehdi.mousavi مشاهده تاپیک
    سلام.
    هدفتون از اینکار چیه؟ اگر اطلاعات محرمانه ای دارید که میخواهید به این طریق از اونها محافظت کنید، این روش اصلا صحیح نیست. در حقیقت در گام نخست، اصلا نباید چنین داده ای با این اهمیت به دست Client برسه.... اما اگر هدفتون محافظت از نوشتن کدهای Script و مشکل تر کردن خوانایی اونها برای افراد دیگه هستش، میتونید از Packer هایی که به این منظور وجود دارن استفاده کنید. طبیعتا اونها هم 100% از کد شما محافظت نخواهند کرد و روشهایی برای بازگرداندن کد وجود داره، اما بدین شکل جلوی بسیاری از افراد رو خواهید گرفت.

    بعنوان مثال، کد ساده alert('test'); توسط Packer به این کد میتونه تبدیل بشه:


    eval(function(p,a,c,k,e,r){e=String;if(!''.replace (/^/,String)){while(c--)r[c]=k[c]||c;k=[function(e){return r[e]}];e=function(){return'\\w+'};c=1};while(c--)if(k[c])p=p.replace(new RegExp('\\b'+e(c)+'\\b','g'),k[c]);return p}('0(\'1\');',2,2,'alert|test'.split('|'),0,{}))


    Packer یک JavaScript Compressor ای هستش که نسخه های قبلی jQuery از اون برای Pack کردن کد استفاده میکردن (و نه Base62 کردن اون!)...

    موفق باشید.
    ممنون استاد موسوی.
    هدفم حفظ کد نوشته شده هست و اینکه چون با xmlhttprequest عملیات درخواست ها به سرور فرستاده می شه واجبه کاربران یا کاربر حرفه ای (نفوزگر) به هیچ وجه دسترسی به کد نداشته باشه تا سر از پروسه طراحی شده در بیاره؟!
    البته سمت سرور چندین مانع برای تشخیص هویت کاربر قرار دادم که اگر نفوزگر به پروسه دسترسی پیدا کرد و گرچه نمی توتند به شی xmlhttp دسترسی داشته باشه ؟! ولی اگر دسترسی هم داشت و درخواست مشابهی هم فرستاد در همون مرحله اول کاربر به صفحه Login راهنمایی می شه؟!
    اما می خوام کار از همه لحاظ محکم کاری شده باشه.
    و یه مشکل که دارم یه بخش از الگریتم یکی از پروسه های سمت وب رو باید در سمت کلاینت اجرا کنم ، و اگر این کد لو برود امکان اینکه نفوزگر با روش کارپروسه سمت سرور هم اشنا بشه خیلی هست.
    ولی اگر راهی براش پیدا نشه ترجیهن این الگریتم و در یه حالت دیگر برای سمت کلاینت می نویسم تا خطری سیستم رو تحدید نکنه.
    -------
    اطلاعات نیست. روش فیلترینگ و ارسال مقادیر هست .
    استاد این روشی که معرفی کردید برای کدینک کردن کد خیلی حجم نمی گیره؟
    آیا روش ها رمز گزاری غیر قابل برگشت (مثل سمت سرور) برای JavaScript وجود نداره؟؟

  10. #10

    نقل قول: چگونه می توان از سرقت فایل های js جلوگیری کرد؟؟؟؟

    سلام.
    با توضیحاتی که دادید، بنظر میرسه میخواهید از Web Service ای محافظت کنید و اجازه فراخوانی Web Method ها به افراد Unathorized رو ندید. درسته؟ راستش من متوجه منظورتون از "پروسه طراحی شده" نمیشم.

    اطلاعات نیست. روش فیلترینگ و ارسال مقادیر هست .
    یعنی میخواهید روش ارسال مقادیر لو نره؟ خوب همونطور که دوستان گفتن، ابزارهایی وجود داره که حتی من میتونم خط به خط کدهای اجرا شده در Browser رو دنبال کنم و ... یا ببینم چه درخواستی با چه اطلاعاتی، به چه سروری در چه لحظه ای میره، اونها رو Capture کنم و Replay کنم.... و بسیاری روشهای دیگه....

    امکانش هست واضح توضیح بدید که چی تو ذهنتون هستش و سعی در پیاده سازی چه چیزی دارید؟

    این روشی که معرفی کردید برای کدینک کردن کد خیلی حجم نمی گیره؟
    البته که حجم رو بالا میبره و سرعت رو نیز کاهش میده. اینجا یه Trade Off هستش و باید خودتون تصمیم بگیرید و روش درست رو انتخاب کنید.

    آیا روش ها رمز گزاری غیر قابل برگشت (مثل سمت سرور) برای JavaScript وجود نداره؟؟
    ببینید. کد JavaScript برای اینکه اجرا بشه (مهم نیست چطوری کد شده، کجا هستش و ...)، باید توی Browser پردازش بشه. ابزاری رو در نظر بگیرید که این پردازش رو مو به مو و ذره به ذره به کاربر نشون بده و اجازه دخل و تصرف در اون رو فراهم کنه.

    حتی کدتون رو اگر با Packer نیز Scramble کنید، از اونجاییکه زمان اجرا کاربر میتونه (در صورتیکه با روشهای موجود آشنا باشه) اجرای کدها رو دنبال کنه، دیگه اهمیتی نداره که با چه چیزی کدتون رو بهم ریخته اید و ....

    پاورقی: در پست قبلی عرض کردم که "Packer یک JavaScript Compressor ای هستش که نسخه های قبلی jQuery از اون برای Pack کردن کد استفاده میکردن". منظورم در حقیقت این بودش که نسخه های قبلی jQuery توسط Packer کوچک (Minified) شده بودن. گفتم این توضیح رو بدم تا خوانندگان به اشتباه نیفتن...

  11. #11
    کاربر دائمی آواتار aminghaderi
    تاریخ عضویت
    بهمن 1387
    محل زندگی
    مشهد
    پست
    1,557

    نقل قول: چگونه می توان از سرقت فایل های js جلوگیری کرد؟؟؟؟

    نقل قول نوشته شده توسط Alireza_Salehi مشاهده تاپیک
    با ابزارهایی مثل firebug کل اسکریپتی که لود می شود حالا با هر پسوند و شکل و شمایلی که باشه قابل بازیابی است...
    وقتی اسکریپت سمت کلاینت داره اجرا میشه یعنی حتما یک فایل اسکریپت لود شده است. پسوندش یا تزریق شدن یا ... مهم نیست. وقتی اسکریپتی اجرا شده یعنی یه جایی هست.
    استاد آیا امکان دیدن فایلهای اینکریپت شده هم هست؟؟؟؟
    اگه فایل ها رو قطعه قطعه کنیم و هر موقع نیاز بود قطعه کدی رو از سرور دریافت کنیم؟!
    و این کد های قطعه قطعه شده رو هم به راهنمایی استاد موسوی اینکریپت کنیم و به قول دوستمان کش Browser رو هم ببندیم؟؟؟
    باید راهی باشه ؟!
    اگه توسط سیستم تشخیص هویت کاربر ، بهش پرمیژن بدیم چطوره؟؟؟؟
    مثل دسترسی به فولدر ها ؟؟؟
    یا داخل پوشه private بزاریم چطوره؟؟
    ایا قابل انجام هست؟؟

  12. #12
    منتظر تایید آدرس ایمیل
    تاریخ عضویت
    اردیبهشت 1389
    محل زندگی
    San Frabarnamenevisco
    پست
    691

    نقل قول: چگونه می توان از سرقت فایل های js جلوگیری کرد؟؟؟؟

    نقل قول نوشته شده توسط bestirani2 مشاهده تاپیک
    با برنامه نویسی سمت سرور تعیین کن تنها در صورتی فایل مربوطه باز بشه که از داخل یکی از صفحات سایتتون خواسته شده باشه
    همچنین کش شدن آن را غیر فعال کنید تا توسط مرورگر ذخیره نشود.
    نقل قول نوشته شده توسط aminghaderi مشاهده تاپیک
    چطوری می شه سمت سرور چک کرد که از صفحه ای خاص فایل داره خونده می شه؟؟؟
    چطوری می تونم کش شدن فایل رو غیر فعال کنم؟؟؟؟
    ممنون می شم یکم راهنمایی کنید؟؟؟
    در حالت عادی نمیشه! مگر اینکه... من یه فکری دارم... همانطور که میدونید میشه با PHP هم این قضیه رو چک کرد که صفحه لود شده از کدام آدرس اومده (توسط متغیر سرور HTTP_REFERER) و هم این رو که در حال حاضر فایل PHP لود شده مستقیما درخواست شده یا نه (هم با متغیر سرور REQUEST_URL و هم واکشی آن از متغیر سرور PHP_SELF توسط دستور eregi)...
    خوب، ما میتونیم کد Javascript مورد نیاز رو توسط فایل PHP اکو (echo) کنیم (یا هر روش دیگر غیر از قرار دادن مستقیم) و توسط دستوراتی که گفته شد از صحت منبع اجرایی آن مطمئن شویم و ضمن اینکه خود این فایل هم مستقیما لود نمی شود.

    آیا تا اینجای کار رو درست گفتم؟

    حالا بالفرض این شیوه هم مورد استفاده قرار گرفت، بالاخره که باید JS رو به سمت کاربر بفرستیم!! پس چرا اینقدر بیهوده تلاش کنیم؟! بهترین و منطقی ترین شیوه همانی است مهدی عزیز گفتند. یعنی پک کردن سورس JS. اینطوری حداقل از شر 90% افراد کنجکاو خلاص می شویم. ولی هیچ وقت این نکته را فراموش نکنید که امنیت JS پایین است، پس برای هر کاری از آن استفاده نکنید.

    موفق باشید

  13. #13

    نقل قول: چگونه می توان از سرقت فایل های js جلوگیری کرد؟؟؟؟

    نقل قول نوشته شده توسط aminghaderi مشاهده تاپیک
    چطوری می شه سمت سرور چک کرد که از صفحه ای خاص فایل داره خونده می شه؟؟؟
    چطوری می تونم کش شدن فایل رو غیر فعال کنم؟؟؟؟
    ممنون می شم یکم راهنمایی کنید؟؟؟
    من کد پی اچ پی مینویسم و با نحوه این کار در دات نت آشنا نیستم و این تاپیک هم اتفاقی وارد شدم ولی به طور کلی توضیح میدهم
    حتماً مقالاتی رو دیدی در مورد اینکه فقط از یک آی پی خاص بتوانند وارد سایتتون بشند
    یا مقالاتی در مورد اینکه در صورتی که تنها کاربر در صورتی بتواند لینکی رو دانلود کنید که از طرف سایت شما فرستاده بشود که بدین ترتیب ترافیکتون بیهوده مصرف نشود
    اینجا هم همین وضع رو داریم
    در مورد غیر فعال کردن در تابع header از no-cache استفاده بکنید
    هم در داخل فایل جاوا اسکریپت و هم صفحه ای که کد جاوا اسکریپت داخلش هست
    فقط توجه داشته باشید که کد جاوا اسکریپت باید تحت سرور ساخته بشه یعنی پسوند اصلیش همون aspx باشه که حالا یک Alias هم با پسوند js میتوید براش در نظر بگیرید

  14. #14
    کاربر دائمی آواتار aminghaderi
    تاریخ عضویت
    بهمن 1387
    محل زندگی
    مشهد
    پست
    1,557

    نقل قول: چگونه می توان از سرقت فایل های js جلوگیری کرد؟؟؟؟

    با توضیحاتی که دادید، بنظر میرسه میخواهید از Web Service ای محافظت کنید و اجازه فراخوانی Web Method ها به افراد Unathorized رو ندید. درسته؟ راستش من متوجه منظورتون از "پروسه طراحی شده" نمیشم.
    بله استاد بخش عمده ی کار همینه و همچنین بخش دیگش محافظت از کد (لو نرفتن) و جلوگیری از دسترسی نفوزگر و افزودن اسکریپت به اون هست.

    یعنی میخواهید روش ارسال مقادیر لو نره؟ خوب همونطور که دوستان گفتن، ابزارهایی وجود داره که حتی من میتونم خط به خط کدهای اجرا شده در Browser رو دنبال کنم و ... یا ببینم چه درخواستی با چه اطلاعاتی، به چه سروری در چه لحظه ای میره، اونها رو Capture کنم و Replay کنم.... و بسیاری روشهای دیگه....
    پس با این ترتیپ جاوااسکریپت به هیچ وجه قابل اطمینان نیست.

    امکانش هست واضح توضیح بدید که چی تو ذهنتون هستش و سعی در پیاده سازی چه چیزی دارید؟
    بله استاد ، من دارم پنل مدیریتی خیلی سنگین طراحی می کنم که شبیه CMS هستش (باقابلیت افزایش و حذف کامپنت) و برای اینکه مدیران اصلی یا مدیران میانی در هنگام کار باسیستم راحت باشند (با توجه به اینترنت ماهواره ای ایران!!!) و اینکه Response و Request ها به سرعت انجام بشه 70 درصد فعالیت ها توسط XmlHttpRequest صورت می گیره (از سیستم CallBack استفاده نمی کنم ، از همون اجکس خودمون استفاده می کنم ، ولی نه اجکس های دات نت ، هسته اجکس) الان کار تغریبا انجام شده و مرحله حفظ امنیتش داره انجام می شه ، که سمت سرور چندین راه برای تشخیص هویت کاربر و پرمیژن مربوطه گزاشتم ولی سمت کلاینت داره عزیت می کنه؟!
    منظور از پردازه ، چندین تابع طراحی شده که مقادیر کل المنت ها رو از روی صفحه جمع آوری می کنه و کلمات حساس رو حذف می کنه(البته سمت سرور هم دوباره این کار اتفاق می افته) و طبق یه ترتیب خاصت مقادیر رو مرتب و پکج می کنه و بعد ارسال می کنه و سمت سرور مقادیر تفکیک شده و عملیات مورد نظر انجام می شه.(این قسمته که خیلی برام مهمه تا کاربر متوجه اون نشه)
    نکته : سمت سرور تمام پارامترها با پرمیژن کاربر که داخل اسکوال ذخیره شده چک می شه و بعد اگه واقعا کاربر همچین دسترسی داشت ،،،، عملیات صورت می گیره؟!
    ولی نمی خوام مثلا هین ارسال پارامترها از سمت کاربر نفوزگر Token هارو دستکاری کنه ؟! به جای متن کاربر یه متن دیگه داخل پایگاه ثبت بشه؟! آیا این امکان هست که همچین اتفاقی بیفته؟؟؟


    ممنون از راهنماییتون
    آخرین ویرایش به وسیله aminghaderi : دوشنبه 21 تیر 1389 در 16:57 عصر دلیل: قرمز کردن بخشی از متن

  15. #15
    کاربر دائمی آواتار aminghaderi
    تاریخ عضویت
    بهمن 1387
    محل زندگی
    مشهد
    پست
    1,557

    نقل قول: چگونه می توان از سرقت فایل های js جلوگیری کرد؟؟؟؟

    در حالت عادی نمیشه! مگر اینکه... من یه فکری دارم... همانطور که میدونید میشه با PHP هم این قضیه رو چک کرد که صفحه لود شده از کدام آدرس اومده (توسط متغیر سرور HTTP_REFERER) و هم این رو که در حال حاضر فایل PHP لود شده مستقیما درخواست شده یا نه (هم با متغیر سرور REQUEST_URL و هم واکشی آن از متغیر سرور PHP_SELF توسط دستور eregi)...
    خوب، ما میتونیم کد Javascript مورد نیاز رو توسط فایل PHP اکو (echo) کنیم (یا هر روش دیگر غیر از قرار دادن مستقیم) و توسط دستوراتی که گفته شد از صحت منبع اجرایی آن مطمئن شویم و ضمن اینکه خود این فایل هم مستقیما لود نمی شود.
    آیا تا اینجای کار رو درست گفتم؟
    بله دقیقا!
    اون سایت هایی که من دیدم هم یکی دوتا شون PHP بودند.

  16. #16
    منتظر تایید آدرس ایمیل
    تاریخ عضویت
    اردیبهشت 1389
    محل زندگی
    San Frabarnamenevisco
    پست
    691

    نقل قول: چگونه می توان از سرقت فایل های js جلوگیری کرد؟؟؟؟

    من کمی توی وب گشتم و چیزهای جالبی برای ایمن کردن AJAX پیدا کردم. یکی از این موارد SRP-Hermetic بود. در این روش یک کانال ارتباطی امن بین کلاینت و سرور ایجاد می شود و دو شیوه Security به توسعه دهنده ارایه می شود:

    • Signing mode
    • Encryption mode

    در حالت اول داده ها بصورت plain text مبادله می شوند ولی با روش HMAC امضا (sign) شده اند. و در روش دوم داده ها بصورت کامل با متد AES یا CTR انکریپت می شوند.



    توضیحات بیشتر را از وبسایت denksoft مطالعه کنید.

    همچنین به یک انجین AJAX بنام (SAJA (Secure Ajax For PHP هم برخوردم که به نظر جالب میاد.

    یک مقاله کوچک 6 صفحه ای هم تحت عنوان How to Secure AJAX Requests دیدم، که برای مطالعه بد نیست.
    و در اینجا هم توضیحات Symantec در مورد امنیت برنامه های AJAX

    این ها رو هم مطالعه کنید:
    http://insecureweb.com/javascript/se...t-with-jquery/
    http://www.java-entrepreneur.com/502...jax_secure.php

    موفق باشید

  17. #17
    کاربر دائمی آواتار ricky22
    تاریخ عضویت
    مرداد 1386
    محل زندگی
    شیراز
    پست
    1,591

    نقل قول: چگونه می توان از سرقت فایل های js جلوگیری کرد؟؟؟؟

    obfuscate javascript مناسب نیست؟

  18. #18
    منتظر تایید آدرس ایمیل
    تاریخ عضویت
    اردیبهشت 1389
    محل زندگی
    San Frabarnamenevisco
    پست
    691

    نقل قول: چگونه می توان از سرقت فایل های js جلوگیری کرد؟؟؟؟

    نقل قول نوشته شده توسط ricky22 مشاهده تاپیک
    obfuscate javascript مناسب نیست؟
    نه نیست!! این هم یک پکر هست، که راجع بهش قبلا دوستان نظر دادند... قابل Reverse هست و کاملا ایمن نیست.
    آخرین ویرایش به وسیله mehdi.mousavi : جمعه 25 تیر 1389 در 10:31 صبح

  19. #19
    کاربر دائمی آواتار aminghaderi
    تاریخ عضویت
    بهمن 1387
    محل زندگی
    مشهد
    پست
    1,557

    نقل قول: چگونه می توان از سرقت فایل های js جلوگیری کرد؟؟؟؟

    به دلایلی که استاد موسوی و دگر اساتید و دوستان توضیح دادند ، هیچ راهی برای امن ساختن JavaScript نیست و چون Ajax هم عنصری از همین خاندان هست ، پس زیاد نمی شه روی امنیت کد و امنیت در حال Transfer داده ها مانور داده ، بهترین راهی که من به ذهن رسیده ، تشخیص هویت سمت سرور هست که همین روش رو پیاده کردم و شخصا متوجه امکان تحدید نشدم؟!
    وقتی پارامتر ها با دسترسی کاربر فعلی چک بشه ، دیگه هر جور هم پرامتر تغیر کرده باشه ، مشکلی پیش نمی یاره !!!!
    پارامتر با دسترسی مقایسه می شه و چون دسترسی به اون بخش نداره پس چندتا پیام محترمانه به کاربر مبنی بر اینکه پارامتر ها دستکاری شده و در صورت تکرار برای برسی دلیل کار ، کد کاربری و IP اون ضبط می شه و در صورت تکرار مجدد کاربر در حالت تعلیق در می یاد؟! (کد کاربر و رمز عبور موقتا مسدود می شه).
    البته این کار واجب نیست ، چون اگه کاربر 1000 بار هم که درخاست به سرور داشته باشه ، پاسخ سرور منفی خواهد بود و این کار برای شناسایی کاربر و جلوگیری از حدر رفتن منابع سرور هست.
    به نظرم روش کاملا امنی باید باشه چون تمام کار های امنیتی در سمت سرور انجام می شه و برای دسترسی ها هم از SQL استفاده می شه .

    خوب اساتید و دوستان نظرشون رو بدن و اگر تحدیدی برسر راه هست ممنون می شم یادآوری کنید.
    ارادتمند همه عزیزان.
    آخرین ویرایش به وسیله aminghaderi : جمعه 25 تیر 1389 در 12:11 عصر دلیل: افزودن بند

  20. #20

    نقل قول: چگونه می توان از سرقت فایل های js جلوگیری کرد؟؟؟؟

    من فقط 13 سالمه و تازه دو ساله که برنامه نویسم. اگه اشکالی بود ببخشید و تذکر بدید.

    شما برای این کار می تونید همون طور دوستان گفتن، اگر از php استفاده کنین، با استفاده از Echo واگر از ASP.Net از Response.Write استفاده کنین تا اسکریپت های مربوط به هر صفحه رو بفرستید. اما برای پردازش های محرمانه!!!! : اگه اهل پر و پا قرص اینترنت باشین و به سایت های بزرگ نرم افزاری سری بزنین، می بینین که اون ها اطلاعاتی از کلاینت می دن که نمی شه با استفاده از جاوا اسکریپت یا راه های دیگه بهشون دست پیدا کرد. مثلا بخش دانلود سایت مایکروسافت، سرعت اینترنت و در نتیجه مدت زمان دانلود کردن اون فایل رو می گه. خوب اون این اطلاعات رو از کجا به دست میاره؟ از هر راهی که هست، حتما هم می تونه پردازش های مخفی شما رو در کلاینت انجام بده. مثل برخی از متغیر های php که این کار رو می کنن و از هزار چیز خبر می دن! من پیشنهاد می کنم که در مورد پروتکل ها خصوصا http تحقیق کنین و اطلاعات کاملی بدست بیارین. در مورد استاندارد های برقراری ارتباط با یک رایانه در شبکه تحقیق کنین. تا بتونین راهی غیر از اسکریپت ها پیدا کنین. نکته ی دیگه هم این که می تونین برای ارسال کد های جاوا اسکریپت از آژاکس و پروتکل https استفاده کنین که در وسط راه کسی نتونه اونا رو تغییر بده. اما برای پردازش های سمت کلاینت که امن هستن، تا می تونین در php از متغیر ها ی کنترلی سمت کلاینت استفاده کنین.

  21. #21

    نقل قول: چگونه می توان از سرقت فایل های js جلوگیری کرد؟؟؟؟

    نقل قول نوشته شده توسط aminghaderi مشاهده تاپیک
    به دلایلی که استاد موسوی و دگر اساتید و دوستان توضیح دادند ، هیچ راهی برای امن ساختن JavaScript نیست و چون Ajax هم عنصری از همین خاندان هست ، پس زیاد نمی شه روی امنیت کد و امنیت در حال Transfer داده ها مانور داده ، بهترین راهی که من به ذهن رسیده ، تشخیص هویت سمت سرور هست که همین روش رو پیاده کردم و شخصا متوجه امکان تحدید نشدم؟!
    وقتی پارامتر ها با دسترسی کاربر فعلی چک بشه ، دیگه هر جور هم پرامتر تغیر کرده باشه ، مشکلی پیش نمی یاره !!!!
    پارامتر با دسترسی مقایسه می شه و چون دسترسی به اون بخش نداره پس چندتا پیام محترمانه به کاربر مبنی بر اینکه پارامتر ها دستکاری شده و در صورت تکرار برای برسی دلیل کار ، کد کاربری و IP اون ضبط می شه و در صورت تکرار مجدد کاربر در حالت تعلیق در می یاد؟! (کد کاربر و رمز عبور موقتا مسدود می شه).
    البته این کار واجب نیست ، چون اگه کاربر 1000 بار هم که درخاست به سرور داشته باشه ، پاسخ سرور منفی خواهد بود و این کار برای شناسایی کاربر و جلوگیری از حدر رفتن منابع سرور هست.
    به نظرم روش کاملا امنی باید باشه چون تمام کار های امنیتی در سمت سرور انجام می شه و برای دسترسی ها هم از SQL استفاده می شه .

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

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


    نقل قول نوشته شده توسط abizaki مشاهده تاپیک
    من فقط 13 سالمه و تازه دو ساله که برنامه نویسم. اگه اشکالی بود ببخشید و تذکر بدید.

    شما برای این کار می تونید همون طور دوستان گفتن، اگر از php استفاده کنین، با استفاده از Echo واگر از ASP.NET از Response.Write استفاده کنین تا اسکریپت های مربوط به هر صفحه رو بفرستید. اما برای پردازش های محرمانه!!!! : اگه اهل پر و پا قرص اینترنت باشین و به سایت های بزرگ نرم افزاری سری بزنین، می بینین که اون ها اطلاعاتی از کلاینت می دن که نمی شه با استفاده از جاوا اسکریپت یا راه های دیگه بهشون دست پیدا کرد. مثلا بخش دانلود سایت مایکروسافت، سرعت اینترنت و در نتیجه مدت زمان دانلود کردن اون فایل رو می گه. خوب اون این اطلاعات رو از کجا به دست میاره؟ از هر راهی که هست، حتما هم می تونه پردازش های مخفی شما رو در کلاینت انجام بده. مثل برخی از متغیر های php که این کار رو می کنن و از هزار چیز خبر می دن! من پیشنهاد می کنم که در مورد پروتکل ها خصوصا http تحقیق کنین و اطلاعات کاملی بدست بیارین. در مورد استاندارد های برقراری ارتباط با یک رایانه در شبکه تحقیق کنین. تا بتونین راهی غیر از اسکریپت ها پیدا کنین. نکته ی دیگه هم این که می تونین برای ارسال کد های جاوا اسکریپت از آژاکس و پروتکل https استفاده کنین که در وسط راه کسی نتونه اونا رو تغییر بده. اما برای پردازش های سمت کلاینت که امن هستن، تا می تونین در php از متغیر ها ی کنترلی سمت کلاینت استفاده کنین.
    تمام سایت هایی فراتر از دسترسی مرورگر اطلاعاتی به شما می دهند افزونه ای پس از تائید شما روی کامپیوتر تان نصب می کنند مثل اکتیو ایکس و از طریق اون اطلاعات سخت افزاری و ... رو از کامپیوتر شما بدست می آورند.

    راهی غیر از اسکریپت برای کار سمت کلاینت در حال حاظر وجود ندارد.

  22. #22

    نقل قول: چگونه می توان از سرقت فایل های js جلوگیری کرد؟؟؟؟

    نقل قول نوشته شده توسط Alireza_Salehi مشاهده تاپیک
    تا زمانی که لازم نباشه کاربر چیزی از سرور دریافت یا به سرور ارسال کنه، امنیتی هملازم نیست. وقتی هم که ارتباطی با سرور برقرار میشه سمت سرور میشه همه چیز رو چک کرد.

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



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

    راهی غیر از اسکریپت برای کار سمت کلاینت در حال حاظر وجود ندارد.
    ولی ببخشین. پس php بعضی از اطلاعات رو از کجا در میاره؟ آیا php برای خودش در همه ی سیستم عامل ها افزونه(plugin) یا ActiveX داره؟ در ضمن بعضی از سیستم های امنیتی بدون افزونه ها می تونن حتی شماره سریال مادر بورد ها رو هم بدست بیارن. مثل نرم افزار هایی که مثلا حد اکثر فقط روی 3 کامپیوتر نصب می شن و برای نصب کردنشون هم باید به اینترنت وصل بود تا اون سرور با شماره های سریال سخت افزار ها کامپیوتر مورد نظر رو بشناسن.

  23. #23
    منتظر تایید آدرس ایمیل
    تاریخ عضویت
    اردیبهشت 1389
    محل زندگی
    San Frabarnamenevisco
    پست
    691

    نقل قول: چگونه می توان از سرقت فایل های js جلوگیری کرد؟؟؟؟

    نقل قول نوشته شده توسط abizaki مشاهده تاپیک
    ولی ببخشین. پس php بعضی از اطلاعات رو از کجا در میاره؟ آیا php برای خودش در همه ی سیستم عامل ها افزونه(plugin) یا ActiveX داره؟ در ضمن بعضی از سیستم های امنیتی بدون افزونه ها می تونن حتی شماره سریال مادر بورد ها رو هم بدست بیارن. مثل نرم افزار هایی که مثلا حد اکثر فقط روی 3 کامپیوتر نصب می شن و برای نصب کردنشون هم باید به اینترنت وصل بود تا اون سرور با شماره های سریال سخت افزار ها کامپیوتر مورد نظر رو بشناسن.
    یکسری اطلاعات رو که از هدر های HTTP میشه بدست آورد. پلاگین هم چیزی نیست که روی سیستم موجود باشه، در واقع یه برنامه کوچکه که با اجازه کاربر به مرورگر اضافه میشه و البته به تمام سیستم دسترسی داره.
    ضمنا امکان نداره که نرم افزارهای تحت وب چنین اجازه ای داشته باشند، مگر اینکه به نوعی اجازه دسترسی را از قبل دریافت کرده باشند، هر چند غیر قانونی.
    آخرین ویرایش به وسیله LORD AELX : شنبه 26 تیر 1389 در 19:55 عصر

  24. #24
    کاربر دائمی آواتار aminghaderi
    تاریخ عضویت
    بهمن 1387
    محل زندگی
    مشهد
    پست
    1,557

    نقل قول: چگونه می توان از سرقت فایل های js جلوگیری کرد؟؟؟؟

    نقل قول نوشته شده توسط abizaki مشاهده تاپیک
    ولی ببخشین. پس php بعضی از اطلاعات رو از کجا در میاره؟ آیا php برای خودش در همه ی سیستم عامل ها افزونه(plugin) یا ActiveX داره؟ در ضمن بعضی از سیستم های امنیتی بدون افزونه ها می تونن حتی شماره سریال مادر بورد ها رو هم بدست بیارن. مثل نرم افزار هایی که مثلا حد اکثر فقط روی 3 کامپیوتر نصب می شن و برای نصب کردنشون هم باید به اینترنت وصل بود تا اون سرور با شماره های سریال سخت افزار ها کامپیوتر مورد نظر رو بشناسن.
    خوب خودت بهش اشاره کردی دیگه:
    نرم افزار هایی که مثلا حد اکثر فقط روی 3 کامپیوتر نصب می شن و برای نصب کردنشون هم باید به اینترنت وصل بود تا اون سرور با شماره های سریال سخت افزار ها کامپیوتر مورد نظر رو بشناسن
    وقتی نرم افزار داره روی سیستم نصب می شه ؟! خوب توی خود C#‎ هم کلاس هایی هستند که از اطلاعات کامل سخت افزاری و سیستم عامل رو بگشت می دهند ، خوب اصلاعات رو که برنامه گرفته ، یه اتصال به سرور هم برقرار می کنه (درصورت کانکت بودن به اینترنت و اجازه از طرف کاربر) و اطلاعات مورد نیاز رو به سرور ارسال می کنه و در سرور هم ریجستر می شه و بعد پاسخ به نرم افزار فرستاده می شه (مثلا همون سریال منحصر به فرد ، که طبق الگریتمی می یاد یه کدی رو با توجه به سریال سخت افزاری - Main Bord - Network Card و... برای PC شما ایجاد می کنه).
    و داخل سرور هم ثبت می شه که یک بار این نرم افزار به نام آقای X ثبت شده .
    یه پروسه برنامه نویسی هست و کار خاصی نیست ؟!
    اما به قول الکس اگه بخواد برنامه تحت وب این کار رو انجام بده ، باید برای سیستم عامل فابلی رو ارسال کنه که اون فایل اجرا بشه (با اجازه کاربر سیستم) و اطلاعات رو بفرسته.
    که معمولا این کار ها انجام نمی شه مگر یه اینترانت خیلی امنیتی باشه که لازم اطلاعات Nod های کانکت به سایت (سریال های و اطلاعات سخت افزاری) رو کامل داشته باشه؟!
    موفق باشی.

  25. #25

    نقل قول: چگونه می توان از سرقت فایل های js جلوگیری کرد؟؟؟؟

    پروتکل HTTP مجوز دسترسی به کامپیوتر کاربر رو ندارند. حتی سیلورلایت، فلش، جاوا و ... هم پس از مجوز کاربر می توانند به وب کم یا امثالهم دسترسی پیدا کنند.
    تنها چیزی که سمت کاربر از طرف مرورگر قابل ذخیره سازی هست کوکی ها هستند.( به HTML 5 کاری نداریم.)

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

    در اینترنت اسپلورر این کار معمولا از طریق اکتیو ایکس انجام میشه.
    مثلا ویروس اسکنر آنلاین سیمانتک http://security.symantec.com/sscv6/WelcomePage.asp
    یا اسکنر درایور http://driveragent.com/ که درایورهای سخت افزاری شما رو بررسی میکنه.

    قبل از این که تمام اینها بتونند کاری انجام دهند باید تایید کاربر گرفته بشه که عکسش رو برای سایت DriverAgent در فایرفاکس و اینترنت اکسپلورر ضمیمه کردم.

    قدیم تر ها سایت ها شما رو مجبور میکردن برای چنین کارهایی از اینترنت اکسپلورر استفاد هکنید ولی جدیدا بقیه مرورگرها هم چنین امکانی رو مشابه اکتیو ایکس دارند.
    هر زبون برنامه نویسی تحت وبی هم باید از این ها استفاده کنه فرقی هم در این کار بین PHP و ASP.NET و ... نیست.
    عکس های ضمیمه عکس های ضمیمه

  26. #26

    نقل قول: چگونه می توان از سرقت فایل های js جلوگیری کرد؟؟؟؟

    نمی دونم این به دردت می خوره یا نه ولی من با .htaccess این کار رو کردم و حتی css

  27. #27

    نقل قول: چگونه می توان از سرقت فایل های js جلوگیری کرد؟؟؟؟

    نقل قول نوشته شده توسط aminghaderi مشاهده تاپیک
    خوب خودت بهش اشاره کردی دیگه:

    وقتی نرم افزار داره روی سیستم نصب می شه ؟! خوب توی خود C#‎‎ هم کلاس هایی هستند که از اطلاعات کامل سخت افزاری و سیستم عامل رو بگشت می دهند ، خوب اصلاعات رو که برنامه گرفته ، یه اتصال به سرور هم برقرار می کنه (درصورت کانکت بودن به اینترنت و اجازه از طرف کاربر) و اطلاعات مورد نیاز رو به سرور ارسال می کنه و در سرور هم ریجستر می شه و بعد پاسخ به نرم افزار فرستاده می شه (مثلا همون سریال منحصر به فرد ، که طبق الگریتمی می یاد یه کدی رو با توجه به سریال سخت افزاری - Main Bord - Network Card و... برای PC شما ایجاد می کنه).
    و داخل سرور هم ثبت می شه که یک بار این نرم افزار به نام آقای X ثبت شده .
    یه پروسه برنامه نویسی هست و کار خاصی نیست ؟!
    اما به قول الکس اگه بخواد برنامه تحت وب این کار رو انجام بده ، باید برای سیستم عامل فابلی رو ارسال کنه که اون فایل اجرا بشه (با اجازه کاربر سیستم) و اطلاعات رو بفرسته.
    که معمولا این کار ها انجام نمی شه مگر یه اینترانت خیلی امنیتی باشه که لازم اطلاعات Nod های کانکت به سایت (سریال های و اطلاعات سخت افزاری) رو کامل داشته باشه؟!
    موفق باشی.
    ببخشید حواسم به این نبود که خود نرم افزار این اطلاعات رو می فرسته. چون من زیاد روی وب کار می کنم، چیزای دیگه از نوک ذهنم پاک شد.

قوانین ایجاد تاپیک در تالار

  • شما نمی توانید تاپیک جدید ایجاد کنید
  • شما نمی توانید به تاپیک ها پاسخ دهید
  • شما نمی توانید ضمیمه ارسال کنید
  • شما نمی توانید پاسخ هایتان را ویرایش کنید
  •