Връзка към БД

ivo75

Registered
Как да направя връзката към БД по най-защитения начин? Имам предвид къде да напиша потребителско име и парола за връзка към БД, дали да ги напиша директно в PHP файла или да ги взема от друго място? Ще извличам данни за хора по ЕГН т.е. формата ще има едно поле за ЕГН и бутон. Ако има урок някъде пуснете един линк.
 
Самата връзка към базата данни няма какво да й защитаваш. PHP се изпълнява на сървъра, така че няма никакво значение къде ще напишеш паролата - посетителите не могат да я вземат, освен ако ти не я покажеш някъде. Иначе може да си използваш config.php файл за връзката и да си го include-ваш в останалите страници. Можеш да направиш тоя файл config.php да се изпълнява само ако е дефинирана константа:

PHP:
if(!defined("inc")) {
     die();
}

и съответно там където include-ваш:
PHP:
define("inc", true);
include "./config.php";
 
Сега се сещам, че имаше защита на въведените символи в полетата чрез, които се пуска заявка към БД т.е. да не се използват специални символи за хакване на БД-то. Това как ставаше :) ?
 
ivo75 каза:
Сега се сещам, че имаше защита на въведените символи в полетата чрез, които се пуска заявка към БД т.е. да не се използват специални символи за хакване на БД-то. Това как ставаше :) ?
Форматираш входните данни с addslashes().
 
С регулярен израз става
preg_match("/^[a-zA-Z0-9_\.]{3,20}$/", $username);

Както виждаш в този пример това ще позволи само символите от a-z малки, големи, цифрите долна черта и точката за потребителското име примерно. И разрешените символи ще бъдат от 3 до 20

И както каза колегата горе си филтрираш данните, въпреки, че когато минеш през регулярен израз трудно ще ти направят някакви бакии, но все пак
addslashes, htmlspecialchars, trim, mysql_real_escape_string
Тези функции трябва да се научиш как икъде да ги използваш и няма да имаш голям проблем със защитите :)
 
Сега се сещам, че dreanweaver генерираше някакъв код точно за това.
 
DreamWeaver ама ти сериозно ли ? :D
Започни да използваш едитори като notepad++ , Netbeans
 
Ето какъв код генерира Dreamweaver

PHP:
<?php
if (!function_exists("GetSQLValueString")) {
function GetSQLValueString($theValue, $theType, $theDefinedValue = "", $theNotDefinedValue = "") 
{
  if (PHP_VERSION < 6) {
    $theValue = get_magic_quotes_gpc() ? stripslashes($theValue) : $theValue;
  }

  $theValue = function_exists("mysql_real_escape_string") ? mysql_real_escape_string($theValue) : mysql_escape_string($theValue);

  switch ($theType) {
    case "text":
      $theValue = ($theValue != "") ? "'" . $theValue . "'" : "NULL";
      break;    
    case "long":
    case "int":
      $theValue = ($theValue != "") ? intval($theValue) : "NULL";
      break;
    case "double":
      $theValue = ($theValue != "") ? doubleval($theValue) : "NULL";
      break;
    case "date":
      $theValue = ($theValue != "") ? "'" . $theValue . "'" : "NULL";
      break;
    case "defined":
      $theValue = ($theValue != "") ? $theDefinedValue : $theNotDefinedValue;
      break;
  }
  return $theValue;
}
}
[/php]
 

Горе