הוסטס - פורום אחסון האתרים הגדול בישראל

הוסטס - פורום אחסון האתרים הגדול בישראל (https://hosts.co.il/forums/index.php)
-   פורום תיכנות (https://hosts.co.il/forums/forumdisplay.php?f=14)
-   -   101 טיפים להרצה מהירה יותר ועוד. (https://hosts.co.il/forums/showthread.php?t=47835)

Daniel 19-06-07 14:34

101 טיפים להרצה מהירה יותר ועוד.
 
לא, זה לא הרשימות האלה שמועתקות מאתרים עם 101 טיפים.


אני כתבתי כמה טיפים, שכל אחד שיגיב ירשום עוד טיפ-וכך עד שנגיע ל-101 D:.

אנא, אל תשכחו למספר את זה.

כתבו כאן טיפים שמיועדים להרצה מהירה יותר, או הערות כלליות בנוגע לאבטחה.
בנוגע לאבטחה-אל תגידו "תעשה X ל-Y", אלא באופו תיאורטי, "כל מה שאתה חוסם ב-JS ניתן לעקיפה-אז תבדוק שאתה חוסם את זה גם ב-PHP".


1. במקום,
PHP קוד:

if (strlen($str) < 6

השתמשו ב-
PHP קוד:

if(isset($str(6))) 

וכפונקציה-
PHP קוד:

function bigger_then($string$length) {
if(isset(
$string($length))) 
return 
true;
else
return 
false;


זה חוסך במשאבים.

2. SQL, בדיקה האם השאילתה נכונה.

לדוגמה, אתם רוצים לבדוק האם יש משתמש כזה במסד.
[SQL]
$sql = mysql_query("SELECT * FROM mastert_users WHERE id = '{$SomeID}'");
$num = mysql_num_rows($sql);
if($num == 1) {
//Do Login
}
[/SQL]
זוהי דרך אחת.
אך בדרך זו, אתם שולפים את כל המידע-מה שבזבוז משאבים-אתם רק רוצים לראות האם יש.
במקום SELECT *, השתמשו ב- SELECT id

[SQL]
$sql = mysql_query("SELECT id FROM mastert_users WHERE id = '{$SomeID}'");
$num = mysql_num_rows($sql);
if($num == 1) {
//Do Login
}
[/SQL]

אנא, הציגו כאן טיפים, הערות, דברים שנתקלתם בהם D:

Source 19-06-07 15:27

תקן את 2.
ואם כבר אתה בקטע של לחסוך... במקום זה:
קוד:

function bigger_then($string, $length) {
if(isset($string($length))) 
return true;
else
return false;
}

זה עדיף (אני לא בטוח שזה חוסך, אבל כנראה כי זה פחות תנאים):
קוד:

function bigger_then($string, $length) {
return (isset($string($length))) 
}


BlueNosE 19-06-07 23:13

ציטוט:

נכתב במקור על ידי Source (פרסם 502420)
תקן את 2.
ואם כבר אתה בקטע של לחסוך... במקום זה:
קוד:

function bigger_then($string, $length) {
if(isset($string($length))) 
return true;
else
return false;
}

זה עדיף (אני לא בטוח שזה חוסך, אבל כנראה כי זה פחות תנאים):
קוד:

function bigger_then($string, $length) {
return (isset($string($length))) 
}


בשרתים מסויימים נתקלתי בבעיה עם הייחוס של $var(num) או $var[num], עדיף והכי בטוח לעשות $var{num}.


3. תשתמשו בהגנת קבצים על כל קובץ בשרת שלכם. אני משתמש בזה:
PHP קוד:

define ("PHP_FILE"1); 

בדף הראשי
ו-
PHP קוד:

<?php
defined 
("PHP_FILE") or exit;

בכל דף שאני מכין. זה מונע גישה ישירה לקובץ (אפשר להגיע אליו רק דרך הFTP)..

Source 19-06-07 23:46

ציטוט:

נכתב במקור על ידי BlueNosE (פרסם 502685)
בשרתים מסויימים נתקלתי בבעיה עם הייחוס של $var(num) או $var[num], עדיף והכי בטוח לעשות $var{num}.

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

DorWD 19-06-07 23:47

הוא עשה סוגריים מסולסלות ({) במקום סוגריים רגילות (() (חח איך הסתבכתי עם הסוגריים ;P)
הוא טוען שבשרתים מסויימים זה לא עובד עם סוגריים רגילות

Source 19-06-07 23:51

אהה הוא מדבר על החלק של הstring(length)? כי אם כן אז אני בכלל לא התייחסתי לזה אבל לא הבנתי למה הוא ציטט אותי ^^.

Gal Shafrir 20-06-07 12:31

PHP קוד:

<?php

    $string 
htmlspecialchars($_POST['string']); // חסימת תגי HTML
    
$string mysql_real_escape_string($_POST['string']); // חסימת "" או '

?>

אבטחת id

PHP קוד:

<?php

    intval
($_GET['id']);
    
?>

או

PHP קוד:

<?php

    $id 
int $_GET['id'];
    
?>

או

PHP קוד:

<?php

    
if(!is_numeric($_GET['id']))
    {
        echo 
"אנא הקש id חוקי";
    }
    
?>


Tomer 20-06-07 15:38

ציטוט:

נכתב במקור על ידי DJ G.S (פרסם 502912)
PHP קוד:

<?php

    $string 
htmlspecialchars($_POST['string']); // חסימת תגי HTML
    
$string mysql_real_escape_string($_POST['string']); // חסימת "" או '

?>

אבטחת id

PHP קוד:

<?php

    intval
($_GET['id']);
    
?>

או

PHP קוד:

<?php

    $id 
int $_GET['id'];
    
?>

או

PHP קוד:

<?php

    
if(!is_numeric($_GET['id']))
    {
        echo 
"אנא הקש id חוקי";
    }
    
?>


עד כמה שאני זוכר זה:

PHP קוד:

$x = (int)$x

ולא כמו שרשמת.

Gal Shafrir 20-06-07 15:39

כן, אתה צודק, פשוט לא הייתי בטוח.

Eran-s 20-06-07 15:44

ציטוט:

נכתב במקור על ידי DJ G.S (פרסם 503100)
כן, אתה צודק, פשוט לא הייתי בטוח.

היה קשה להסתכל בהיסטורית ההודעות במסנג'ר? |Lol|


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

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