25 טריקים שימושיים ל־'.htaccess' של Apache לאבטחה והתאמה אישית של אתרים

האתרים הם חלקים חשובים בחיינו. הם משמשים כדי להרחיב עסקים, לשתף ידע ועוד הרבה. בעבר הייתה ההגבלה לספק רק תוכן סטטי, עם הצגת שפות דינמיות לצד הלקוח והשרת והתקדמות מתמדת של שפת ה-HTML הסטטית הקיימת כמו HTML5, ניתן להוסיף כל דבר דינמי לאתרים ומה שנותר צפוי לבוא בקרוב בעתיד הקרוב.

עם האתרים מגיע צורך ביחידה שיכולה להציג את האתרים הללו לקהל רחב מאוד בכל העולם. הצורך הזה מתמלא על ידי השרתים המספקים אמצעים לאחסון אתר אינטרנט. כולל רשימת שרתים כמו: שרת HTTP Apache, Joomla, ו-וורדפרס שמאפשרים לאחד לאחסן את האתרים שלהם.

25 htaccess Tricks

מי שרוצה לאחסן אתר יכול ליצור שרת מקומי שלו או ליצור קשר עם כל אחד מהניתן למעלה או כל מנהל שרת אחר כדי לאחסן את האתר שלו. אבל הבעיה האמיתית מתחילה מנקודה זו. הביצועים של אתר תלויים בעיקר על הגורמים הבאים:

  1. רוחב הפס שנצרך על ידי האתר.
  2. כמה מאובטח האתר נגד האקרים.
  3. אופטימיות כאשר מדובר בחיפוש נתונים דרך מסד הנתונים
  4. נוחות השימוש כאשר מדובר בהצגת תפריטי ניווט ובספק יותר יכולות ממשק משתמש.

בנוסף לכך, גורמים שונים שמשלטים על הצלחת השרתים באחסון אתרים הם:

  1. כמות הדחיסה של נתונים שניתן להשיג עבור אתר מסוים.
  2. יכולת לשרת בו זמנית מספר לקוחות שואלים על אותו אתר או אתר שונה.
  3. אבטחת המידע המובנה באתרים כמו: דואר אלקטרוני, פרטי כרטיס אשראי וכו'.
  4. הרשאת יותר ויותר אפשרויות לשפר את הדינמיות של אתר.

מאמר זה מתעסק בתכונה אחת כזו שסופקה על ידי השרתים המסייעת בשיפור ביצועי האתרים יחד עם הגנתם מבוטים רעים, קישורים חמים וכו'. כלומר קובץ '.htaccess'.

מה זה .htaccess?

htaccess (או גישה היפרטקסט) הם הקבצים שמספקים אפשרויות לבעלי האתרים לשלוט במשתני סביבת השרת ופרמטרים נוספים לשיפור פונקציונליות של האתרים שלהם. קבצים אלו יכולים לשוכן בכל וכל ספרייה בעץ הספריות של האתר ולספק תכונות לספרייה ולקבצים ותיקיות בתוכה.

מהן התכונות האלו? טוב אלה ההוראות של השרת כלומר השורות שמצוות לשרת לבצע משימה מסוימת, וההוראות האלה תקפות רק לקבצים ולתיקיות בתוך התיקייה שבה ממוקם קובץ זה. קבצים אלה מוסתרים כברירת מחדל מכיוון שכל מערכות ההפעלה ושרתי האינטרנט מוגדרים להתעלם מהם כברירת מחדל אך הפיכת הקבצים המוסתרים לנראים יכולה לאפשר לך לראות את הקובץ המיוחד הזה במיוחד. מה סוג הפרמטרים שניתן לשלוט בהם הוא נושא הדיון בחלקים הבאים.

הערה: אם קובץ .htaccess מונח בתיקייה /apache/home/www/Gunjit/ אז זה יספק הוראות לכל הקבצים והתיקיות באותה תיקייה, אבל אם התיקייה הזו מכילה תיקייה נוספת בשם: /Gunjit/images/ שוב יש בה קובץ .htaccess אז ההוראות בתיקייה זו ידרשו את אלו שסופקו על ידי הקובץ הראשי .htaccess (או הקובץ בתיקייה שמעלה בהיררכיה).

שרת Apache וקבצי .htaccess

שרת ה- Apache HTTP המכונה בצורה לא רשמית Apache נקרא על שם שבט אינדיאני נייטיבי אפאצ'ה כדי לכבד את יכולותיו המעולות באסטרטגיות לחימה. בנוי בשפות C/C++ ו- XML, זהו שרת אינטרנט צולב-פלטפורמה המבוסס על שרת NCSA HTTPd ושומר תפקיד מרכזי בצמיחה וקידום האינטרנט העולמי.

השימוש הנפוץ ביותר ב- UNIX, Apache זמין למגוון רחב של פלטפורמות כולל FreeBSD, Linux, Windows, Mac OS, Novel Netware ועוד. ב- 2009, Apache הפך להיות השרת הראשון ששירת יותר מ- 100 מיליון אתרים.

לשרת Apache יש קובץ .htaccess אחד לכל משתמש בתיקיית www/. אף על פי שקבצים אלו מוסתרים, ניתן להציגם אם נדרש. בתיקיית www/ יש מספר תיקיות כל אחת מתייחסת לאתר בשם המשתמש או בשם הבעלים. בנוסף, ניתן להכיל קובץ .htaccess אחד בכל תיקייה שמגדיר קבצים באותה תיקייה כפי שנאמר לעיל.

איך להגדיר קובץ htaccess בשרת Apache כך…

הגדרה בשרת Apache

ישנם שני מקרים אפשריים:

לאחסן אתר אינטרנט בשרת עצמי

במקרה זה, אם קבצי .htaccess לא מאופשרים, תוכל לאפשר קבצי .htaccess פשוט על ידי העברה לקובץ httpd.conf (קובץ הקונפיגורציה ברירת המחדל עבור Apache HTTP Daemon) ולמצוא את סעיף <Directories>.

<Directory "/var/www/htdocs">

ולאתר את השורה שאומרת…

AllowOverride None 

ולתקן אותה ל.

AllowOverride All

עכשיו, באימות מחדש של Apache, קבצי .htaccess יעבדו.

אירוח אתר בשרת של ספק אחסון שונה

במקרה זה עדיף להתייעץ עם מנהל האחסון, אם הם מאפשרים גישה לקבצי .htaccess.

25 טריקים של 'htaccess' של שרת האינטרנט של Apache עבור אתרי אינטרנט

1. כיצד לאפשר mod_rewrite בקובץ .htaccess

אפשרות mod_rewrite מאפשרת לך להשתמש בהפניות ולהסתיר את כתובת ה-URL האמיתית שלך על ידי הפנייה לכתובת URL אחרת. אפשרות זו עשויה להיות מאוד שימושית ולאפשר לך להחליף את כתובות ה-URL הארוכות והארוכות לכתובות קצרות וקלות לזכיר.

כדי לאפשר mod_rewrite פשוט עשה תרגול להוספת השורה הבאה כשורת הראשונה של קובץ ה-.htaccess שלך.

Options +FollowSymLinks

אפשרות זו מאפשרת לך לעקוב אחר קישורים סמליים ולכן לאפשר את אפשרות mod_rewrite באתר. החלפת ה-URL בקישור קצר וקריספי מוצגת מאוחר יותר.

2. כיצד לאפשר או לאסור גישה לאתרים

קובץ htaccess יכול לאפשר או לאסור גישה לאתר או לתיקייה או לקבצים בתיקייה שבה הוא מוצב באמצעות השימוש במילות המפתח order, allow ו-deny.

אישור גישה רק ל-192.168.3.1 IP
Order Allow, Deny
Deny from All
Allow from 192.168.3.1

OR

Order Allow, Deny
Allow from 192.168.3.1

הזמנה מילת המפתח כאן קובעת את הסדר שבו יעובדו פעולות אישור, דחיית לגישה. להצהרת 'הזמנה' לעיל, ההצהרות אישור יעובדו תחילה ואז ההצהרות דחיית יעובדו.

מניעת גישה לכתובת IP אחת בלבד

השורות למטה מספקות את האמצעים לאפשר גישה לאתר לכל המשתמשים חוץ ממי שיש לו כתובת IP: 192.168.3.1.

rder Allow, Deny
Deny from 192.168.3.1
Allow from All

OR


Order Deny, Allow
Deny from 192.168.3.1

3. יצירת מסמכי שגיאת Apache עבור קודי שגיאה שונים.

באמצעות שורות פשוטות, אנו יכולים לתקן את מסמך השגיאה שרץ על ידי קודי שגיאה שנוצרים על ידי השרת כאשר המשתמש/הלקוח מבקשים עמוד שאינו זמין באתר כמו שרובנו ראינו את העמוד '404 עמוד לא נמצא' בדפדפן האינטרנט שלהם. קבצי '.htaccess' מציינים איזו פעולה לבצע במקרה של תנאי שגיאה כזה.

כדי לעשות זאת, יש להוסיף את השורות הבאות לקבצי '.htaccess' שלך:

ErrorDocument <error-code> <path-of-document/string-representing-html-file-content>

'ErrorDocument' הוא מילת מפתח, קוד השגיאה יכול להיות אחד מ-401, 403, 404, 500 או כל קוד שגיאה תקף אחר ולבסוף, 'נתיב-המסמך' מייצג את הנתיב במחשב המקומי (במקרה שאתה משתמש בשרת מקומי שלך) או בשרת (במקרה שאתה משתמש בשרת של מישהו אחר לאחסון האתר שלך).

דוגמה:
ErrorDocument 404 /error-docs/error-404.html

השורה לעיל מגדירה את המסמך 'error-404.html' שמוצב בתיקיית error-docs להופיע במקרה שהשרת מדווח על שגיאת 404 עבור בקשה לא תקפה לעמוד על ידי הלקוח.

rrorDocument 404 "<html><head><title>404 Page not found</title></head><body><p>The page you request is not present. Check the URL you have typed</p></body></html>"

התיצוג לעיל נכון גם המקום שבו מוצבת המחרוזת המייצגת קובץ html רגיל.

4. הגדרת/ביטול משתני סביבת שרת Apache

בקובץ .htaccess תוכל להגדיר או לבטל את משתני הסביבה הגלובליים שהשרת מאפשר לשנות על ידי מארחי האתרים. על מנת להגדיר או לבטל משתני הסביבה עליך להוסיף את השורות הבאות לקבצי ה-.htaccess שלך.

הגדרת משתני הסביבה
SetEnv OWNER “Gunjit Khera”
ביטול משתני הסביבה
UnsetEnv OWNER

5. הגדרת סוגי MIME שונים עבור קבצים

MIME (רחבי השימוש במדיה באינטרנט) הם הסוגים שמוכרים על ידי הדפדפן כברירת מחדל בעת הרצת כל עמוד אינטרנט. תוכל להגדיר סוגי MIME עבור האתר שלך בקבצי .htaccess, כך שסוגי קבצים שהוגדרו על ידך יכולים להיות מוכרים ומופעלים על ידי השרת.

<IfModule mod_mime.c>
	AddType	application/javascript		js
	AddType application/x-font-ttf		ttf ttc
</IfModule>

כאן, mod_mime.c הוא המודול לשליטה בהגדרות של סוגי MIME שונים ואם יש לך מודול זה מותקן במערכת שלך, אז תוכל להשתמש במודול זה כדי להגדיר סוגי MIME שונים עבור סיומות שונות באתר שלך כך שהשרת יוכל להבין אותם.

6. איך להגביל את גודל העלאות והורדות ב-Apache

קבצי .htaccess מאפשרים לך את היכולת לשלוט בכמות הנתונים שמועלים או מורדים על ידי לקוח מסוים מהאתר שלך. לכך עליך רק להוסיף את השורות הבאות לקובץ ה-.htaccess שלך:

php_value upload_max_filesize 20M
php_value post_max_size 20M
php_value max_execution_time 200
php_value max_input_time 200

השורות למעלה מגדירות את גודל ההעלאה המרבי, גודל הנתונים המרבי שנשלחים, זמן הביצוע המרבי, כלומר הזמן המרבי שהמשתמש רשאי להפעיל את האתר במחשב המקומי שלו, והמגבלה המרבית על זמן הקלט.

Source:
https://www.tecmint.com/apache-htaccess-tricks/