Saturday, January 23, 2010

A2 آموزش اسکریپت

به نام حضرت دوست که هر چه داریم از اوست


و به نام رنگ آزادی و دموکراسی ، سبز!


هدف از تهیه این اسکریپت ، گسترش آزادی و اطلاع رسانی و دسترسی نامحدود در اینترنت برای ایرانیان و مردم سبز داخل ایران می باشد که با توجه به اقدامات دولت کودتا از جمله فیلترینگ سایت های مخالف دولت با بهانه های پوچ و بی محتوا که در جهت کاهش آگاهی مردم صورت گرفته است و می گیرد ، و یا کاهش سرعت اینترنت به بهانه های دروغین و یا از کار انداختن نرم افزارهایی مانند الترا سرف و پوف و خصوصا اقدام اخیر مخابرات ایران که تشخیص و دیکد کردن الگوریتم های رمز نگاری (مانند BASE64) اسکریپت های پروکسی مانند Glype و Zelune و... انجام گرفته است و تمام این کارها بدون شک با همکاری روس ها و چینی ها انجام میگیرد ؛ تصمیم بر آن گرفتیم با تعدادی از دوستان ، اسکریپ های مختلف پروکسی را بررسی کرده و سبک ترین آن را انتخاب کنیم و الگوریتم رمزنگاری آن را تغییر دهیم و علاوه بر آن امکاناتی را به آن اضافه کنیم.



اسکریپت حاضر بر پایه اسکریپت PHProxy می باشد که از نظر سرعت نسبت به دیگر اسکریپت ها بسیار سریع بوده و کم حجم تر می باشد! همچنین این اسکریپت بر خلاف سایر اسکریپت های مشابه از گسترش دهنده CURL استفاده نمی کند . این کار باعث می شود تا این اسکریپت در هاست هایی که گسترش دهنده CURL روی آن نصب یا فعال نیست ، به آسانی کار کند و همچنین گسترش دهنده CURL از توان CPU خیلی زیاد استفاده می کند . همچنین این اسکریپت ساده با نسخه 4 پی اچ پی هم سازگاری دارد .


حداقل امکانات مورد نیاز:




  • یک هاست برای آپلود اسکریپت (هاست های رایگان بدلیل فعال بودن safe-mode اکثر توابع پی اچ پی غیر فعال هستند و به احتمال زیاد این اسکریپت کار نمی کند.)

  • PHP 4 یا بالاتر که اکثر سرور ها نسخه پی اچ پی خود را به 5 آپدیت کرده اند .







کار با اسکریپت در محیط کاربری:





  1. در قسمت اول منویی است که با کلیک روی آن ، آدرس آن در قسمت Enter URL ظاهر می شود .

  2. در قسمت Latest News ، می توانید عنوان آخرین خبرهای سایت راه سبز را مشاهده کنید . با کلیک روی هر عنوان خبری ، لینک آن در قسمت Enter URL ظاهر می شود تا ادامه خبر را بدون محدودیت در سایت راه سبز مشاهده نمایید.

  3. در قسمت پایین تر ، کادری را می بینید که برخی از سایتهای فیلتر شده و مخالف دولت در آن قرار دارد که این قسمت برای راحتی کار کاربر و دسترسی سریع به سایت های فیلتر شده قرار داده شده است . برای استفاده از این قسمت کافی است روی لینک دلخواه خود کلیک کنید تا لینک آن در قسمت Enter URL ظاهر شود .

  4. در قسمت Enter URL هم می توانید لینک مورد نظر خود را وارد کنید و در پایان روی دکمه Browse کلیک کنید تا صفحه مورد نظر را بدون محدودیت مشاهده کنید.

  5. یکی از قسمت های مهم دیگر ، قسمت Options می باشد که با کلیک بر روی آن ، گزینه های مدریتی مختلفی را می بینید:











Include mini URL-form on every page: این گزینه سبب میشود فرمی برای وارد کردن آدرس و ابزارهای مدیریتی این قسمت به صورت کوچک در بالای صفحه مشاهده شود ( پیشفرض فعال) :









(Remove client-side scripting (i.e JavaScript : این گزینه سبب می شود اسکریپت های سمت کلانت مانند جاوااسکریپت یا وی بی اسکریپت یا ... غیرفعال شوند. (پیشفرض غیر فعال)

Allow cookies to be stored: این گزینه سبب می شود کوکی ها پذیرفته و ذخیره شوند . این امکان برای لاگین کردن در سایت های مختلف لازم است . (پیشفرض فعال)

Show images on browsed pages: این گزینه سبب می شود ، تصاویر نیز نمایش داده شوند. (پیشفرض فعال)

Show actual referring Website: این گزینه سبب می شود referer مرورگر نمایش داده شود ، این کار سبب میشود لینکی که شما را به سایتی منتقل کرده به آن سایت فرستاده شود ، (پیشفرض غیر فعال برای مسائل امنیتی)






Strip meta information tags from pages : حذف اطلاعات متا از صفحه وب (پیشفرض فعال) :




Strip page title: حذف عنوان صفحه وب (پیشفرض غیرفعال)

Store cookies for this session only: تمام کوکی ها دارای محدودیت زمانی خواهند بود و با بستن مرورگر یا مدت زمانی محدودی ، از مرورگر حذف خواهند شد. (پیشفرض فعال برای مسائل امنیتی)



گزیته های مربوط به انکودینگ:

Use ROT13 encoding on the address : استفاده از الگوریتم Rot13 در انکود (رمزنگاری) URL ها

Use base64 encoding on the address : استفاده از الگوریتم base64 در انکود (رمزنگاری) URL ها

Use a2 encodng on the address: تلفیقی از الگوریتم های بالا و رندوم سازی لینک ها (پیشفرض)

نکته: در صورتی که همه روش ها یا 2 تا از روش ها انتخاب شده باشد ، الویت به صورت زیر است:

a2 ==> base64 ==> rot13

یعنی ابتدایی ترین روش انجام می گیرد یعنی اول a2 در صورتی که a2 انتخاب نشده باشد base64.









تغییر و شخصی سازی اسکریپت:

برای تغییرات عمده و اصلی می توانید فایل index.php را با notepad یا wordpad یا Notepad++ یا ادیتور های پیشرفته تر باز کرده و صورت زیر عمل کنید:











1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

42

43

44

45

46

47

48

49

50

51

52

53

54

55

56

57

58

59

60

61

62

63

64

65

66

67

68

69

70

71

72

73

74

75

76

77

78

79

80

81

82

83

84

85

86

87

88

89

90

91
$_config = array

(

'script_title' => 'A2',

'url_var_name' => 'q',

'flags_var_name' => 'hl',

'get_form_name' => '____pgfa',

'basic_auth_var_name' => '____pbavn',

'max_file_size' => -1,

'allow_hotlinking' => 0,

'upon_hotlink' => 1,

'show_rss' => 1,

'rssItems' => 10,

'rssLink' => 'http://www.rahesabz.net/feeds/allP/',

'show_favorites' => 1,

'compress_output' => 0

);

$_favorites = array

(

'Facebook' => 'http://facebook.com',

'Twitter' => 'http://twitter.com',

'RaheSabz' => 'http://rahesabz.net',

'Balatarin' => 'http://balatarin.com',

'Youtube' => 'http://youtube.com',

'Kaleme' => 'http://kaleme.org',

'SahamNews' => 'http://sahamnews.org/',

'AyandeNews' => 'http://ayandenews.com',

'RoozOnline' => 'http://roozonline.com',

'ParlemanNews' => 'http://parlemannews.ir',

'BBCPersian' => 'http://bbc.co.uk/persian',

'IranNewsAgancy(INA)' => 'http://irannews-ina.com',

'VOAPersian' => 'http://www1.voanews.com/persian',

'RadioFarda' => 'http://www.radiofarda.com',

'AkhbarRooz' => 'http://akhbar-rooz.com',

'SedayeFarda' => 'http://sedayefarda.com',

'IranianUK' => 'http://iranianuk.com',

  'Sazegara' => 'http://sazegara.net',

'AkbarAlami' => 'http://akbaralami.com',

'KhodNevis' => 'http://www.khodnevis.org/persian/',

'Hiss' => 'http://irhiss.com',

'GOrdab' => 'http://gordab.com'

);

$_navItems = array

(

'Facebook' => 'http://facebook.com',

'YouTube' => 'http://youtube.com',

'RaheSabz' => 'http://rahesabz.net'

);

$_flags = array

(

'include_form' => 1,

'remove_scripts' => 0,

'accept_cookies' => 1,

'show_images' => 1,

'show_referer' => 0,

'a2_encode' => 1,

'rotate13' => 0,

'base64_encode' => 0,

'strip_meta' => 1,

'strip_title' => 0,

'session_cookies' => 1

);

$_frozen_flags = array

(

'include_form' => 0,

'remove_scripts' => 0,

'accept_cookies' => 0,

'show_images' => 0,

'show_referer' => 0,

'a2_encode' => 0,

'rotate13' => 0,

'base64_encode' => 0,

'strip_meta' => 0,

'strip_title' => 0,

'session_cookies' => 0

);

$_labels = array

(

'include_form' => array('Include Form', 'Include mini URL-form on every page'),

'remove_scripts' => array('Remove Scripts', 'Remove client-side scripting (i.e JavaScript)'),

'accept_cookies' => array('Accept Cookies', 'Allow cookies to be stored'),

'show_images' => array('Show Images', 'Show images on browsed pages'),

  'show_referer' => array('Show Referer', 'Show actual referring Website'),

'a2_encode' => array('A2', 'Use a2 encodng on the address'),

'rotate13' => array('Rotate13', 'Use ROT13 encoding on the address'),

'base64_encode' => array('Base64', 'Use base64 encodng on the address'),

'strip_meta' => array('Strip Meta', 'Strip meta information tags from pages'),

'strip_title' => array('Strip Title', 'Strip page title'),

'session_cookies' => array('Session Cookies', 'Store cookies for this session only')

);





I. آرایه config:

این آرایه تنظیمات اصلی اسکریپت را کنترل می کند که تک تک در زیر شرح داده می شود:

script_title : عنوان اسکریپت را مشخص می کند. (پیشفرض A2

url_var_name : نام متغیر در لینک را مشخص می کند (پیشفرض : q ) :

flags_var_name : نام آرایه متغیر های قسمت Options (پیشفرض : hl )

get_form_name: نام تگ input از نوع hidden که در صورتی که متد فرم GET تعریف شود به کار می رود.


basic_auth_var_name: نام تگ input از نوع hidden که در صورتی که صفحه لاگین تنظیم شود در فرم لاگین قرار می گیرد.

max_file_size : سقف حجم مجاز برای دانلود فایل ، -1 یعنی بدون محدودیت حجمی

allow_hotlinking : اجازه استفاده از لینک دادن به صورت مستقیم برای صفحات

upon_hotlink: واکنش اسکریپت نسبت به hotlink را کنترل می کند . عدد 1 نمایش پیغام خطایی در صفحه اول اسکریپت ؛ عدد 2 برای نمایش پیغام 404 ؛ و مقدار دیگر سبب redirect کردن اسکریپت به آدرس وارد شده، می شود.

show_rss : آیا قسمت آخرین اخبار که بر اساس rss انجام می گیرد نمایش داده شود یا خیر (پیشفرض 1 برای نمایش هست)

rssItems : تعداد نمایش آیتم های آخرین اخبار ( باید به تعداد آیتم های سایت مرجع نیز توجه شود!)

rssLink : لینک آدرس rss برای دریافت اخبار

show_favorites : نمایش لینکهای منتخب (پیشفرض 1 برای نمایش)

compress_output : فشرده سازی یا gzip کردن صفحات برای کاهش bandwidth سرور و کاهش حجم صفحات ، این کار از cpu بیشتر مصرف می کند بنابراین در سرورهایی که cpu های قوی دارند پیشنهاد می شود (پیشفرض 0 برای غیر فعال سازی)

II. آرایه favorites :

در این آرایه می توانید لینک های منتخب خود را برای نمایش در صفحه اصلی قرار دهید .

III . آرایه navItems :

آیتم های منوی بالا (navbar) را می توانید در این قسمت وارد کنید.

IV. آرایه flags :

در این قسمت می توایند پیشفرض فعال یا غیرفعال بودن گزینه های قسمت Options را که در بالا هم توضیح داده شد ، تنظیم کنید .

V. آرایه labels :

در این قسمت می توانید به ترتیب مقدار name تگ input از نوع checkbox را برای گزینه مورد نظر تغییر دهید ؛ در قسمت دوم عنوان یا توضیح کوتاه گزیته مورد نظر برای نمایش در فرم کوچک در هنگام نمایش صفحات ، تنظیم می شود. در قسمت پایانی نیز عنوان یا توضیح بلند گزینه مورد نظر در صفحه اصلی نوشته می شود.

VI . تغییر قالب:

برای تغییر قالب نیز می توانید فایل های index.inc.php و main.css را تغییر دهید. این کار نیاز به اطلاعاتی در مورد HTML و CSS می باشد.










تغییرات عمده ای که در نسخه های آینده انجام خواهد گرفت: (Road Map)




  1. تغییر الگوریتم های رمز نگاری موجود در صورت نیاز و شناسایی شدن

  2. افزودن حداقل 2 الگوریتم رمز نگاری دیگر به اسکریپت

  3. افزدون امکان رمزنگاری محتوای صفحه

  4. افزودن سیستم rss پیشرفته تر

  5. افزودن سیستمی برای قالب ها

  6. افزودن راهنما در اسکریپت

  7. افزودن قالب های متنوع

  8. افزودن افکت ها و امکانات web2 و ای جکس (AJAX)

  9. بهینه ساری امنیت و سرعت اسکریپت

  10. رفع باگ های احتمالی

  11. ایجاد صفحه لاگین

  12. ایجاد صفحه مدیریت کوکی ها










ارتباط با ما:

Email:

a2freedom4iran@gmail.com

blog:

a2freedom.blogspot.com

or

httpS://a2freedom.wordpress.com

4shared:

httpS://a2freedom.4shared.com

https://sourceforge.net/projects/a2freedom