קטגוריות
ווקומרס

ווקומרס מימין לשמאל

ואבן החכמים.

תיקון הבלוק של קוד בעורך גוטנברג (CSS):

pre.wp-block-code {
	text-align: left;
	direction: ltr;
}

תיקון סליידר מבוסס Owl Carousel בקוד (CSS):

.owl-carousel,
.bx-wrapper { direction: ltr; }
.owl-carousel .owl-item { direction: rtl; }

תיקון תפריט נפתח מבוסס Chosen Drop בקוד (CSS):

.chosen-container .chosen-drop { left: 9999px; }

יצירת תבנית בת לתבנית Twenty Twenty- צור את הנתיב wp-content/themes/twentytwenty-child, ובו את הקבצים style.css ו-style-rtl.css עם התוכן:

/*
 Theme Name:   twentytwenty Child
 Template:     twentytwenty
*/

וקובץ functions.php עם התוכן:

<?php
add_action( 'wp_enqueue_scripts', 'condless_theme_enqueue_styles' );
function condless_theme_enqueue_styles() {
        if ( is_rtl() ) {
                wp_enqueue_style( 'parent-style-rtl', get_template_directory_uri() . '/style-rtl.css' );
        } else {
                wp_enqueue_style( 'parent-style', get_template_directory_uri() . '/style.css' );
        }
}

תיקון תצוגת הפונטים (CSS):


body {
	font-family: "Inter var", -apple-system, BlinkMacSystemFont, "Helvetica Neue", Helvetica, sans-serif;
}

יצירת תבנית בת לתבנית Storefront- צור את הנתיב wp-content/themes/storefront-chlid, ובו את הקבצים style.css ו-style-rtl.css עם התוכן:

/*
Theme Name: Storefront Child
Template: storefront
*/

והקובץ functions.php עם התוכן:

<?php
add_action( 'wp_enqueue_scripts', 'condless_theme_enqueue_styles', 9999 );
function condless_theme_enqueue_styles() {
	if ( is_rtl() ) {
        	wp_dequeue_style( 'storefront-child-style' );
		wp_enqueue_style( 'child-style-rtl', get_stylesheet_directory_uri() . '/style-rtl.css', 'storefront-style' );
	}
}

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

קטגוריות
הרחבות לווקומרס

תכונות ברירת מחדל לווקומרס

איך להחריג תכונה מסוימת מחישוב תכונת הברירת המחדל על פי המלאי?
עדכן את ה-id של התכונה:

add_filter( 'daw_max_variations', 'exclude_attribute', 10, 2 );
function exclude_attribute( $max_variations, $attribute ) {
	$excluded_attribute = 25;
	if ( $excluded_attribute === $attribute['id'] ) {
		return 0;
	}
	return $max_variations;
}

איך להחיל את אפשרות בחירת התכונה הראשונה רק במוצרים עם עד כמות מסוימת של תכונות?
עדכן את כמות התכונות הרצויה:

add_filter( 'first_attribute_checkbox', 'daw_first_attribute_restrict_products', 10, 2 );
function daw_first_attribute_restrict_products( $first_attribute_checkbox, $product ) {
	$max_attributes = 3;
	if ( $max_attributes < count( $product->get_attributes() ) ) {
		return 'no';
	}
	return $first_attribute_checkbox;
}

איך להחריג מוצר מסוים מכל חישובי תכונות ברירת המחדל?
עדכן את ה-id של המוצר:

add_filter( 'daw_include_product', 'exclude_product', 10, 2 );
function exclude_product( $included, $product ) {
	$excluded_product = 71;
	if ( $excluded_product === $product->get_id() ) {
		return false;
	}
	return $included;
}
קטגוריות
תשתית לווקומרס

אבטחת שרת ווקומרס

וצעצוע של סיפור.

  • עדכן באופן תדיר
  • החלף את הסיסמאות לעיתים תכופות תוך וידוא שהן באורך 8 תווים לפחות (אותיות גדולות וקטנות באנגלית, מספרים וסמלים) והוסף אימות דו-שלבי
  • הגדר חומת אש
  • הפעל הגנת DDOS
  • סרוק את קבצי השרת ועבור על הלוגים באופן תכוף
  • השתמש ביוזר root רק בעת הצורך
  • חסימת התחברות של המשתמש root ב-SSH- הוסף לקובץ etc/ssh/sshd_config/:
PermitRootLogin no
  • הגדר אילו לוגים יישמרו והיכן בקובץ etc/rsyslog.conf/.
  • הגדרת מערכת למניעת חדירות Fail2ban:

הפעל את mod_remoteip (במידה ומשתמש ברברס פרוקסי)

צור את הקובץ etc/fail2ban/jail.local/ והשתמש בהוראות, לדוגמא, הפעלת הגנה ממושכת על SSH:

[recidive]
enabled = true

[sshd]
enabled = true

הגדרת מספר קבצי לוג:

logpath = /var/www/clients/client12/web*/log/access.log
          /var/www/clients/client13/web*/log/access.log

ביטול חסימה שנוצרה השתמשו בפקודה:

 fail2ban-client set sshd unbanip $IP
  • הסתרת פרטי שרת ווב אפאצ'י- הוסף לקובץ etc/apache2/apache2.conf/:
ServerTokens Prod
ServerSignature Off
  • הסתרת פרטי ה-PHP- הוסף לקובץ php.ini:
expose_php = off

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

קטגוריות
תשתית לווקומרס

שרת דואר לווקומרס

ופרעה.

שיפור שיעור השליחה המוצלחת של דוא"ל מהשרת:

  • הגדר לשמות המתחם: DMARC ,DKIM ,SPF
  • וודא ששם השרת קיים בערכים: A record ,rDNS, ממשק ניהול השרת, בתצורת ה-MTA (כולל mailname),וה-Content filter שבשימוש

כפי שבוודאי שמת לב- השימוש המתועד הראשון לדואר היה דווקא להעברת צווים ופסקי דין שהוציאו המלכים במצריים העתיקה.

קטגוריות
תשתית לווקומרס

אימות דו-שלבי

וקים דוטקום.

אימות דו-שלבי מבוסס TOTP מקשה על גישה בלתי מורשית לחשבונך, מכיוון שמלבד הסיסמא שלך, יהיה צורך להשיג את הקוד שנוצר באפליקציה שלך בזמן אמת ולהתחבר מידית (הקוד מתחלף כל זמן קצר) או לאתר את הקוד הסודי שלך (secret).

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

אימות דו שלבי הוא חלק ממערך אבטחת המידע הנדרש בכל עסק. על מנת להשתמש בתהליך אימות זה יש להוריד אפליקציית OTP.

להגדרת TOTP כשלב אימות שני בוורדפרס / ווקומרס:

  • התקן והפעל את התוסף
  • סרוק את קוד ה-QR דרך האפליקציה
  • לחץ עדכן פרופיל

להגדרת TOTP כשלב אימות שני בוובמייל Roundcube:

  • התקן והפעל את התוסף
  • הפעל את האפשרות דרך לשונית הגדרות

להגדרת TOTP כשלב אימות שני ב-phpMyAdmin:

  • התקן והפעל את הפיצ'ר
  • הפעל את האפשרות דרך לשונית הגדרות

להגדרת TOTP כשלב אימות שני בשרת וירטואלי ל-SSH:

  • התקן והפעל את החבילה
  • בקובץ etc/pam.d/sshd/ הפוך להערה את include common-auth @ והוסף auth required pam_google_authenticator.so
  • בקובץ etc/ssh/sshd_config/ שנה את הערך ChallengeResponseAuthentication ל-yes, ואת הערך PasswordAuthentication ל-no, והוסף AuthenticationMethods publickey,keyboard-interactive
  • הפעל מחדש את ה-SSH service

להגדרת TOTP כשלב אימות שני בממשק ניהול השרתים:

  • לחץ על כפתור ה-TFA בהגדרות משתמש
  • צור קוד סודי רנדומלי (אופציונלי)
  • קבע שם מנפיק (אופציונלי)
  • סרוק את קוד ה-QR עם האפליקציה
  • הכנס את הסיסמא
  • הכנס את ערך ה-TOTP מהאפליקציה
  • לחץ החל

כפי שבוודאי שמת לב- קים דוטקום איים לתבוע את כל שירותי הרשת המרכזיים המציעים צורת אימות זו, על בסיס פטנט שרשם בשנת 2000. לעת עתה הפטנט שלו בוטל על ידי משרד הפטנטים האירופי, בשל פטנט דומה הנרשם ע"י AT&T כבר בשנת 1998.

קטגוריות
תשתית לווקומרס

ISPConfig

והחלילן מהמלין.

ISPConfig הינה מערכת קוד פתוח לניהול שרת ולאחסון אתרים בלינוקס, היא מאפשרת ניהול מספר שרתים מאותו ממשק כולל ניהול שרת ווב, ניהול שרת דוא"ל וניהול שרת DNS.

לאתרי אינטרנט עם מדיניות פרטיות מחמירה- בטל את אפשרות הסטטיסטיקות.

ליצירת משתמשים קבע מספר לקוח קבוע ועל מנת ליצור לו משאבים יש להשתמש באפשרות "התחבר כלקוח".

שנה את קונפיגורציות השרת בעזרת בנתיב usr/local/ispconfig/server/conf-custom/ ושל הממשק בקובץ /usr/local/ispconfig/interface/lib/config.inc.local.php.

הפעלת SSL לאתר- תחילה הפעל את ה-SSL ואז את ה-Let’s Encrypt SSL, בנוסף תוכל להשתמש באופציות ההפניה מ-HTTP ל-HTTPS ומ-domain.ltd ל-www.domain.ltd (לאחר יצירת סאב דומיין אוטומטי www). לניקוי תעודת SSL ישנה- השתמש בפקודה (תעודה חדשה יותר תהה עם סיומת מספר גבוהה יותר):

certbot delete

הפעלת SSL באתר וורדפרס / ווקומרס מאחורי רברס פרוקסי- הוסף לקובץ wp-config.php את ההוראה:

$_SERVER['HTTPS'] = 'on';

שימוש ב-ISPConfig מאחורי NAT– הפעל את האפשרות Skip Lets Encrypt Check (System => Server Config => Web => SSL Settings), השתמש ב-WAN IP בהגדרות ה-DNS ובהגדרות האתרים, וב-LAN IP בתצורת שרת ובכתובות IP של השרת.

הגדרת רברס פרוקסי השומר על כתובת המבקש המקורי ולא מעביר בקשות לתעודות SSL בשרת הווב אפאצ'י- השתמש בהוראות:

ProxyPreserveHost On
ProxyPass /.well-known/acme-challenge !
ProxyPass /$PATH http://$LAN-IP:$PORT/$PATH
ProxyPassReverse /$PATH http://$LAN-IP:$PORT/$PATH
ProxyPass / http://$LAN-IP:$PORT/
ProxyPassReverse / http://$LAN-IP:$PORT/

שיפור יציבות השרת- השתמש באפשרות rescue (תחת Server Config).

שחזור אתר מסוים מגיבוי השרת- ייצא וייבא את גיבוי קבצי האתר ובסיס הנתונים ואת רשומת הגיבוי הרלוונטי שבבסיס הנתונים של ISPConfig, הרץ ידנית את כל הגיבויים המוגדרים- השתמש בפקודה:

php /usr/local/ispconfig/server/cron_debug.php --cronjob=500-backup.inc.php

הקשחה של מדיניות הדוא"ל- ערוך את ההוראות בקובץ etc/postfix/main.cf/:

smtpd_helo_required = yes
smtpd_helo_restrictions = permit_mynetworks, permit_sasl_authenticated, reject_non_fqdn_helo_hostname, reject_invalid_helo_hostname
smtpd_recipient_restrictions = permit_mynetworks, permit_sasl_authenticated, reject_invalid_hostname, reject_non_fqdn_hostname, reject_unknown_recipient_domain, reject_non_fqdn_recipient, reject_unauth_destination, reject_non_fqdn_sender, reject_unknown_sender_domain, reject_unknown_recipient_domain, reject_rbl_client cbl.abuseat.org,reject_rbl_client dul.dnsbl.sorbs.net,reject_rbl_client ix.dnsbl.manitu.net, check_recipient_access mysql:/etc/postfix/mysql-virtual_recipient.cf, reject_unauth_destination
smtpd_client_restrictions = permit_mynetworks, permit_sasl_authenticated, reject_unknown_client_hostname, check_client_access mysql:/etc/postfix/mysql-virtual_client.cf

הגדרת PureFTP לשימוש ב-passive mode (מאפשר שימוש מאחורי חומת אש)- השתמש בהוראות (פתח את אותם הפורטים בחומת האש):

echo "30510 30610" > /etc/pure-ftpd/conf/PassivePortRange
service pure-ftpd-mysql restart

להתמודדות עם חסימת CSRF בעת מחיקת משאבים כלשהם- מחוק אותם ישירות בבסיס הנתונים.

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

קטגוריות
תשתית לווקומרס

פרוקסמוקס

והמכונית היפנית.

פרוקסמוקס (Proxmox) הינה מערכת קוד פתוח מבוססת דביאן לוירטואליזציה. היא מאפשרת מכונות וירטואליות ו-LXC, אחסון ותקשורת מונחי תוכנה, ויתירות.

גיבוי קבצי התצורה של השרת עצמו עם הפקודה:

tar -zcvf /var/lib/vz/dump/srv_etc_root-$(date +"%Y_%m_%d-%H_%M_%S").tar.gz /etc /root

בטל אפשרות שחזור/הסרת LXC, הפעל את אפשרות ה-Protection. כדי לאפשר למשתמשים לבצע גיבויים, הענק להם הרשאת PVEDatastoreUser על נתיב האחסון והרשאת PVEVMUser על נתיב המכונה הוירטואלית.

הגבלת מספר הגיבויים האוטומטיים שיישמרו- השתמש באפשרות Max Backups (בדאטה סנטר => אחסון).

שימוש ב-NAT יחדיו עם פרוקסמוקס- צור Linux bridge עם ה-LAN IP, והתאם את חומת האש המובנית לעבודה עם המכונות הוירטואליות- הוסף את ההוראות לקובץ etc/network/interfaces/:

post-up   iptables -t raw -I PREROUTING  -i fwbr+ -j CT --zone 1
post-down iptables -t raw -D PREROUTING  -i fwbr+ -j CT --zone 1

הגדרת חוקי NAT ו-port forwarding עם iptables- הוסף לקובץ etc/network/interfaces/ את ההוראות:

post-up echo 1 > /proc/sys/net/ipv4/ip_forward
post-up iptables -t nat -A POSTROUTING -s '$LAN-IP-SUBNET' -o eno1 -j MASQUERADE
post-down iptables -t nat -D POSTROUTING -s '$LAN-IP-SUBNET' -o eno1 -j MASQUERADE
post-up iptables -t nat -A PREROUTING -i eno1 -p tcp -m multiport --dports $PORTS -j DNAT --to $DESTINATION-LAN-IP
post-down iptables -t nat -D PREROUTING -i eno1 -p tcp -m multiport --dports $PORTS -j DNAT --to $DESTINATION-LAN-IP

קבלת תעודת SSL של Let's Encrypt למספר שרתים שנמצאים מאחורי NAT- הגדר port forwarding לפורט 80 לשרת הרלוונטי לזמן הולידציה.

הגדרת אחסון חדש- בשרת => אחסון ודאטה סנטר => אחסון.

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