הרשם שאלות ותשובות רשימת חברים לוח שנה הודעות מהיום

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

   
|!|

השב
 
כלים לאשכול תצורת הצגה
ישן 09-07-10, 14:23   # 11
~The_Sultan~
חבר על
 
מיני פרופיל
תאריך הצטרפות: Oct 2008
הודעות: 771

~The_Sultan~ לא מחובר  

למה לא? הוא מיועד למניעת הצפות בעיקרון, אבל מה הבעיה להשתמש בזה גם לזה? זה כמו שביטוי רגולארי לא נועד דווקא בשביל לבדוק האם המשתנה הוא מספר, אלא לדברים מסובכים יותר כמובן, אבל אפשר. וזה לא מזיק.
ואיפה אמרתי שא"א להשתמש בREFERER? אמרתי שאם כבר משתמשים, אז לעשות בצורה שנתתי, שזה לפחות מוריד את הרמה של הפירצות.
  Reply With Quote
ישן 09-07-10, 15:06   # 12
Shay Ben Moshe
משתמש - היכל התהילה
 
מיני פרופיל
תאריך הצטרפות: Oct 2007
הודעות: 1,397

Shay Ben Moshe לא מחובר  

כבוד על ההשקעה אבל הקודים שלך ממש לא חכמים...
PHP קוד:
$formString strip_tags(htmlspecialchars($_POST['string'])); 
גם מוחק וגם הופך תגים לתוויות מתאימות. צריך רק אחד מהם (אני אישית בעל htmlspecialchars).
PHP קוד:
$intValue is_numeric($_GET['id']) && intval($_GET['id']) > $_GET['id'] : die("Invalid id value"); 
נתחיל מזה שהפונקציה intval לא ממש יעילה ופה גם מיותרת אם אתה כבר יודע שהמשתנה הוא נומרי. הפתרון החכם הוא או להמיר לint ואז לוודא שהמספר אכן קיים בDB או להשתמש בescaping או משהו בסגנון.
PHP קוד:
$value strip_tags(htmlspecialchars(mysql_real_esace_string($_GET['string']))); 
אותו סיפור כמו קודם...
__________________
שי בן משה - בונה אתרים
חותך אתרים, ומתכנת צד לקוח וצד שרת.
  Reply With Quote
ישן 09-07-10, 15:25   # 13
Erez | TrustMedia.co.il
עסק רשום [?]
 
מיני פרופיל
תאריך הצטרפות: Jul 2008
הודעות: 1,854

Erez | TrustMedia.co.il לא מחובר  

לגבי הCSRF אין לי מושג מה זה,אבל לפי התיאור שנתת,הפיתרון הוא לא הכי טוב,מכיוןן שאם כבר מישהו שולח בקשה ידנית לקובץ שמבצע את הפעולות,אז הוא בקלות יכול להוסיף HEADER של הREFFER ואז אתה תחשוב שזה בא מהקובץ המקורי,כך שלא פתרת את הבעיה
__________________
  Reply With Quote
ישן 09-07-10, 17:18   # 14
RS324
תודה על תרומתך.
 
מיני פרופיל
תאריך הצטרפות: May 2006
הודעות: 3,173

RS324 לא מחובר  

מדריך נחמד , התעלמת לגמרי מ 2 דברים

1. מאד חשוב , register_globals = on יכול לגרום לפרצות אבטחה מאד חמורות
2. magic_qoutes צריך לוודא שהוא OFF ואם הוא ON אז לעשות STRIP_SLASH על הכל כי אז זה עושה צרות עם ה ESCAPE שפשוט תקבל סלאשים כפולים וכאלה...

לגבי הפתרונות הם מתאימים למקרים הבסיסיים אבל אם לדוגמא יש לך עורך WYSIWYG אז אתה לא בדיוק יכול לעשות STRIP_TAGS....
יש עוד כמה נושאים באבטחה שלא נגעת בהם , אבל זה טוב להתחלה
כל הכבוד....
  Reply With Quote
ישן 09-07-10, 20:38   # 15
anti
חבר על
 
מיני פרופיל
תאריך הצטרפות: Jul 2006
הודעות: 901

anti לא מחובר  

PHP קוד:
<?php
/*
------------------------------------------------------------
|           Defense.php Is to free use
|           Defense from: Xss,Sql Inj in url only
|          =============================
|           > Date of Created: 21/12/08
------------------------------------------------------------
*/
class Defense 
{
    Var 
$Url;
    Var 
$Attack;
    Var 
$IP;
    Var 
$Method;
    Var 
$headers;
    Var 
$Out "";
    Var 
$Value;
    Var 
$Email;
    Var 
$Date;
     
      function 
eMail($Subject)
      {
      
$this->headers "MIME-Version: 1.0\r\n";
      
$this->headers.= "Content-type:text/html;charset=windows-1255\r\n";
      
$this->Subject $Subject;
      
$this->Message "<html><head></head><body dir='ltr'><div style='direction: ltr; font-family: arial; font-size: 11px;'>Method Of this Attack: {$this->Method}<br />IP Of this Attack: {$this->IP}<br />Url Of this Attack: {$this->Attack}</body></html>";
      
mail($this->Email,$this->Subject,$this->Message,$this->headers);
      }
    function 
Defense()
    {
    
$this->Url $_SERVER['QUERY_STRING'];
    
$this->Attack $_SERVER['REQUEST_URI'];
    
$this->IP $_SERVER['REMOTE_ADDR'];
    
$this->Value "Defense()";
    
$this->Email "yourmail@gmail.com";
    
$this->Date date("d/m/Y H:i:s");

        if (
preg_match("#(union|drop|alter|update|having|insert|select|create|<(.+)|alert)#i",$this->Url))
        {
                
SetCookie("Defense",$this->Value,time()+3600*2);
                
$this->Method "Url String";
                
$this->eMail("Your site has benn Attacked");
    Die(
$Defense->Out="
    <!DOCTYPE html PUBLIC '-//W3C//DTD XHTML 1.0 Transitional//EN' 'http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd'> 
            <html xml:lang='en' lang='en' xmlns='http://www.w3.org/1999/xhtml'>
    <head>
        <meta http-equiv='content-type' content='text/html; charset=windows-1255' />
        <title>Defense</title>
    </head>
<body style='background-color: #000;'>
<div style='margin: 0 auto 0 auto; text-align: center;'>
    <div style='background-color: #fff; width: auto; height: auto; border: 1px dashed #fafafa;'>
        <pre>Method Of this Attack: {$this->Method}<br />IP Of this Attack: {$this->IP}<br />Url Of this Attack: {$this->Attack}</pre>
    </div>
    <div style='color: #fafafa; font-weight: bold; font-size: 10pt;'>Your Detalis Is Send to the Admin forum</div>
</div>
</body>
    </html>
    "
);
        }
    }
}
$Defense = new Defense;
if (isset(
$_COOKIE['Defense']) && $_COOKIE['Defense'] == $Defense->Value)
{
    Die(
$Defense->Out="
    <!DOCTYPE html PUBLIC '-//W3C//DTD XHTML 1.0 Transitional//EN' 'http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd'> 
            <html xml:lang='en' lang='en' xmlns='http://www.w3.org/1999/xhtml'>
    <head>
        <meta name='author' content='sHoN.G' />
        <meta http-equiv='content-type' content='text/html; charset=windows-1255' />
        <title>Defense</title>
    </head>
<body style='background-color: #000;'>
    <div style='text-align: center; color: #fafafa; font-weight: bold; font-size: 13pt;'>Your Blocked for 2 Hours<br />Reason: You try to Attack the site</div>
    
</body>
    </html>
    "
);
}
?>
קובץ נחמד המגן מ XSS ו SQL INJ בשיטת GET,
פשוט תעשו INCLUDE בעמודים בהם יש חשש..
או תעשו INCLUDE כולל על ידי הכנסת העמוד הזה כ INCLUDE בתוך ה CONFIG
(בהנחה שאתם עשיתם INCLUDE לקובץ הCONFIG שלכם בכל האתר)
  Reply With Quote
ישן 09-07-10, 23:58   # 16
Hagaibl
משתמש - היכל התהילה
 
מיני פרופיל
תאריך הצטרפות: Jul 2010
הודעות: 214

Hagaibl לא מחובר  

ציטוט:
נכתב במקור על ידי Shay Falador צפה בהודעה
כבוד על ההשקעה אבל הקודים שלך ממש לא חכמים...
PHP קוד:
$formString strip_tags(htmlspecialchars($_POST['string'])); 
גם מוחק וגם הופך תגים לתוויות מתאימות. צריך רק אחד מהם (אני אישית בעל htmlspecialchars).
PHP קוד:
$intValue is_numeric($_GET['id']) && intval($_GET['id']) > $_GET['id'] : die("Invalid id value"); 
נתחיל מזה שהפונקציה intval לא ממש יעילה ופה גם מיותרת אם אתה כבר יודע שהמשתנה הוא נומרי. הפתרון החכם הוא או להמיר לint ואז לוודא שהמספר אכן קיים בDB או להשתמש בescaping או משהו בסגנון.
PHP קוד:
$value strip_tags(htmlspecialchars(mysql_real_esace_string($_GET['string']))); 
אותו סיפור כמו קודם...
תמיד הייתי גם משתמש רק בhtmlspecialchars אני כמעט ולא נוגע בstrip_tags התחלתי לעשות שימוש בגלל AJAX.

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

ציטוט:
נכתב במקור על ידי RS324 צפה בהודעה
מדריך נחמד , התעלמת לגמרי מ 2 דברים

1. מאד חשוב , register_globals = on יכול לגרום לפרצות אבטחה מאד חמורות
2. magic_qoutes צריך לוודא שהוא OFF ואם הוא ON אז לעשות STRIP_SLASH על הכל כי אז זה עושה צרות עם ה ESCAPE שפשוט תקבל סלאשים כפולים וכאלה...

לגבי הפתרונות הם מתאימים למקרים הבסיסיים אבל אם לדוגמא יש לך עורך WYSIWYG אז אתה לא בדיוק יכול לעשות STRIP_TAGS....
יש עוד כמה נושאים באבטחה שלא נגעת בהם , אבל זה טוב להתחלה
כל הכבוד....
זה טיפים בסיסים לחלוטין, אני לא בא לדבר פה על קינפוג נכון של השרת, הרי המתכנת לא יבוא ויתחיל לדרוש מהלקוח תשנה את זה ותשנה את זה.
בכמובן שאם תשתמש בstrip_tags זה ידפוק את התוכן של WYSIWYG לכן צריך גם קצת לדעת מתי להשתמש.
__________________
בברכה,
חגי בלוך גדות.
  Reply With Quote
ישן 10-07-10, 13:08   # 17
liorclub
חבר על
 
מיני פרופיל
תאריך הצטרפות: Jan 2007
גיל: 39
הודעות: 756
שלח הודעה באמצעות ICO אל liorclub שלח הודעה באמצעות MSN אל liorclub

liorclub לא מחובר  

כל הכבוד על הכוונות הטובות והנסיון לעזור, זה משהו שיכול לעזור לכל מי שבתחילת דרכו.

יישר כוח !
__________________
ליאור
  Reply With Quote
ישן 15-07-10, 15:05   # 18
astricks
חבר בקהילה
 
מיני פרופיל
תאריך הצטרפות: Oct 2005
גיל: 36
הודעות: 95

astricks לא מחובר  

כל הטיפים האלה מתרכזים לאותה נקודה, פשוט לא להסתמך על המשתמש (מוזר שרק דילרים וחנונים קוראים ללקוחות שלהם ככה אבל בסדר) בנוגע לשום דבר. כלומר, כל דבר שנכנס אליכם למערכת, כמו שאני מקווה שאתם עושים בחיים, בודקים בקפדנות ומסננים. KEEP IT SIMPLE
  Reply With Quote
ישן 20-07-10, 23:02   # 19
AlmogBaku
חבר וותיק
 
AlmogBaku's Avatar
 
מיני פרופיל
תאריך הצטרפות: Nov 2007
מיקום: מודיעין
הודעות: 1,022

AlmogBaku לא מחובר  

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

חשוב לחסום שטויות, לכתוב קוד מסודר ונכון, ולבצע הברחה ואימות נתונים מול סוג נתונים. כל השאר יבוא לבד
  Reply With Quote
ישן 21-07-10, 00:45   # 20
Hagaibl
משתמש - היכל התהילה
 
מיני פרופיל
תאריך הצטרפות: Jul 2010
הודעות: 214

Hagaibl לא מחובר  

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

חשוב לחסום שטויות, לכתוב קוד מסודר ונכון, ולבצע הברחה ואימות נתונים מול סוג נתונים. כל השאר יבוא לבד
זה מה שאני מסביר פה :|.
ותתפלא, רוב ה"מתכנתים" בישראל(אלו שחושבים את עצמם אבל לא באמת מתכנתים) לא עושים גם את זה.
__________________
בברכה,
חגי בלוך גדות.
  Reply With Quote
השב

חברים פעילים הצופים באשכול זה: 1 (0 חברים ו- 1 אורחים)
 

Tags
אבטחה, מדריך למתחילים, מדריך php


חוקי פירסום
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is מופעל
סמיילים הם מופעל
[IMG] קוד מופעל
קוד HTML מכובה

קפיצה לפורום


כל הזמנים הם GMT +2. הזמן כעת הוא 21:47.

מופעל באמצעות VBulletin גרסה 3.8.6
כל הזכויות שמורות ©
כל הזכויות שמורות לסולל יבוא ורשתות (1997) בע"מ