ȸ¿ø°¡ÀԡžÆÀ̵ð/ºñ¹øã±â
ȨÀ¸·Î

php sqlÀÎÁ§¼Ç °ø°Ý¸·±â
7³â Àü
Example#1 mysql_real_escape_string() ¿¹Á¦

<?php
// Connect
$link = mysql_connect('mysql_host', 'mysql_user', 'mysql_password')
    OR die(mysql_error());

// Query
$query = sprintf("SELECT * FROM users WHERE user='%s' AND password='%s'",
            mysql_real_escape_string($user),
            mysql_real_escape_string($password));
?>
Example#2 SQL ÀÎÁ§¼Ç °ø°Ý(Injection Attack)ÀÇ ¿¹

<?php
// Query database to check if there are any matching users
$query = "SELECT * FROM users WHERE user='{$_POST['username']}' AND password='{$_POST['password']}'";
mysql_query($query);

// We didn't check $_POST['password'], it could be anything the user wanted! For example:
$_POST['username'] = 'aidan';
$_POST['password'] = "' OR ''='";

// This means the query sent to MySQL would be:
echo $query;
?>
MySQL·Î Àü¼ÛµÇ´Â ÁúÀÇ:

SELECT * FROM users WHERE name='aidan' AND password='' OR ''=''

    
À¯È¿ÇÑ ºñ¹Ð¹øÈ£ ¾øÀÌ ´©±¸³ª Á¢¼ÓÇÏ¿© Á¢±ÙÀÌ °¡´ÉÇÏ´Ù.

Example#3 "Best Practice" ÁúÀÇ

mysql_real_escape_string()Àº °¢ º¯¼ö¿¡ ´ëÇØ SQL ÀÎÁ§¼ÇÀ» ¹æÁöÇÑ´Ù. ÀÌ ¿¹Á¦´Â Magic Quotes ¼³Á¤°ú´Â º°°³·Î µ¥ÀÌÅͺ£À̽º¸¦ ÁúÀÇÇÏ´Â "best practice" ¹æ¹ýÀ» ½Ã¿¬ÇÑ´Ù.

<?php
// Quote variable to make safe
function quote_smart($value)
{
    // Stripslashes
    if (get_magic_quotes_gpc()) {
        $value = stripslashes($value);
    }
    // Quote if not integer
    if (!is_numeric($value)) {
        $value = "'" . mysql_real_escape_string($value) . "'";
    }
    return $value;
}

// Connect
$link = mysql_connect('mysql_host', 'mysql_user', 'mysql_password')
    OR die(mysql_error());

// Make a safe query
$query = sprintf("SELECT * FROM users WHERE user=%s AND password=%s",
            quote_smart($_POST['username']),
            quote_smart($_POST['password']));

mysql_query($query);
?>
SQL ÀÎÁ§¼Ç °ø°ÝÀÌ µ¿ÀÛÇÏÁö ¾ÊÀ¸¸ç ÁúÀÇ°¡ Á¤È®ÇÏ°Ô ½ÇÇàµÉ °ÍÀÌ´Ù
ÃßõÃßõ : 262 Ãßõ ¸ñ·Ï
¹øÈ£ Á¦¸ñ
2,825
»ç¿ëÀÚ°¡ À¥ºê¶ó¿ìÀú¿¡¼­ µÚ·Î°¡±â¸¦ ÇßÀ»¶§ °¨ÁöÇÏ´Â ¹æ¹ý
2,824
[jQuery]¹öÆ° È°¼ºÈ­, ºñÈ°¼ºÈ­
2,823
jQuery show() / hide() / toggle() »ç¿ë¹ý
2,822
jquery ¿©·¯°¡Áö À̺¥Æ®
2,821
border-radius ¼Ó¼º
2,820
³×À̹ö ¿ÀÇÂAPI À½¼ºÇÕ¼º API »ç¿ëÇÏ´Â PHP »ùÇÃÄÚµå
2,819
UTF8 ÇÑ±Û ÀÚ¸£±â..
2,818
iconv ¿¡·¯ ¹ß»ý½Ã °è¼Ó ó¸®Çϱ⠿ɼÇ
2,817
[PHP] ÇöÀç ÆäÀÌÁöÀÇ µµ¸ÞÀÎ , URL Á¤º¸ ¾Ë¾Æ³»±â.
2,816
[PHP] ¸·°­ ±â´É ¹è¿­..
2,815
[CSS] - Input clear `X ` ¹öÆ° Á¦°Å ( IE, Chrome, Firefox )
2,814
[Mobile] - ¸ð¹ÙÀÏÀ¥ Href ű׼Ӽºµé
2,813
[JqueryMobile] - ÇöÀçÈ­¸éÀÇ °¡·Î¼¼·Î »çÀÌÁî ±¸Çϱâ
2,812
[JqueryMobile] - È­¸éÀÇ °¡·Î, ¼¼·Î »çÀÌÁî ±¸ÇÏ´Â ¹æ¹ý
2,811
jquery·Î °¡·Î ³ÐÀÌ(width), ¼¼·Î ³ôÀÌ(height) ÀÚµ¿ Á¶Àý
2,810
iframe ³ôÀÌ jquery·Î ÀÚµ¿Á¶ÀýÇϱâ
2,809
jQuery ¿À¸¥ÂÊ ¿µ¿ªÀÇ ³ôÀ̸¦ ¿ÞÂÊ ¿µ¿ªÀÇ ³ôÀÌ¿Í µ¿ÀÏÇÏ°Ô Çϱâ
2,808
jquery¿¡¼­ Å×À̺í ¦¼ö, Ȧ¼ö ¹ø° TR ¹è°æ»ö º¯°æÇϱâ
2,807
jquery¿¡¼­ Å×ÀÌºí¿¡ ¸¶¿ì½º ¿À¹ö½Ã ÇØ´ç ÇàÀÇ ¹è°æ»ö»ó º¯°æÇϱâ
2,806
jquery ½ºÅ©¸³Æ®³» ƯÁ¤°ª È®ÀÎÇϱâ (µð¹ö±ë)
2,805
jquery cookie (jquery.cookie.js)
2,804
jquery div ±âº» ³ÐÀÌ, ³ôÀÌ °è»ê ¹× padding, border Æ÷ÇÔ Çϱâ
2,803
jquery ´Ù¸¥¹öÀü Ãß°¡ »ç¿ë½Ã Ãæµ¹ ¹æÁö (Ä«Æä24 ½º¸¶Æ®µðÀÚÀÎ ±âº»³»Àå jquery 1.4.4 ¹öÀü°ú Ãæµ¹½Ã ÇØ°á¹æ¹ý)
2,802
ƯÁ¤ ÆäÀÌÁö Á¾·á½Ã È®ÀÎ °æ°íâ Ãâ·Â
2,801
jquery ¸¶¿ì½º ¿À¸¥ÂÊ ¹öÆ° Ŭ¸¯ ±ÝÁö (¿ìŬ¸¯ Á¦ÇÑ)
2,800
Á¤±Ô½Ä ƯÁ¤±¸°£ÀÇ ³»¿ë¸¸ °¡Á®¿À±â
2,799
°ýÈ£() ¾ÈÀÇ ³»¿ë¸¸ ÃßÃâ
2,798
4±â°¡ ÀÌ»óÀÇ Å×À̺íÀ» ¸¸µé°í ½Í´Ù¸é(Å×À̺íÀÇ AVG_ROW_LENGTH, MAX_ROWS)
2,797
Á¤±Ô Ç¥Çö½Ä(Regular Expression)
2,796
PHP¿¡¼­ À¯¿ëÇÏ°Ô ¾²ÀÌ´Â ¹®ÀÚ¿­ ó¸® ÇÔ¼ö
¸ñ·Ï
¹ÂÁ÷Æ®·ÎÆ® ºÎ»ê±¤¿ª½Ã ºÎ»êÁø±¸ °¡¾ßµ¿ ¤Ó °³ÀÎÁ¤º¸Ãë±Þ¹æħ
Copyright ¨Ï musictrot All rights reserved.