이 PHP 코드에서 SQL 삽입 방지

조셉

PostgreSQL 데이터베이스에 쓰는 다음 함수가 있습니다. SQL 인젝션으로부터 안전하게 만들어야하지만 어떻게해야할지 모르겠습니다.

어셈블 된 쿼리의 일부는 pg_query_params주입 으로부터 안전하지만 (또는 내가 말했듯이) PHP의 문자열 연결을 통해 어셈블 된 쿼리의 다른 부분은 .주입에 취약합니다.

private function setItem($table, $id, $field, $itemId, $fieldValue){

    $_1 = $itemId;
    $_2 = $fieldValue;
    $_3 = $field;
    $_4 = $table;
    $_5 = $id;

    $parameters = array($_1, $_2);

    // If the ID already exists, then update the name!
    $sql = 'update ' . $_4 . ' set ' .$_3 . ' = $2 where ' . $_5 . ' = $1;';
    /*$result = */pg_query_params($this->database, $sql, $parameters);

    // Add ID and Name into table.
    $sql = 'insert into ' . $_4 . '(' . $_5 . ',' . $_3 . ') select $1, $2 where not exists(select 1 from ' . $_4 . ' where ' . $_5 . '=$1)';

    $result = pg_query_params($this->database, $sql, $parameters);

    return $result;
}

편집하다:

PHP에서 SQL 주입을 어떻게 방지 할 수 있습니까? 내 우려를 해결하지 못하는 것 같습니다.

PostgreSQL을 사용하고 있으며 호환되는 것을 찾으려고합니다. pg_query_params

프랭크 하이 켄스

실행할 쿼리를 만들기 전에 quote_ident ()를 사용하여 데이터베이스에 테이블 및 열 이름을 보호하도록 요청할 수 있습니다 . 다음과 같은 것이 필요합니다.

<?php
$table = 'table name'; // unsafe
$column = 'column name'; // unsafe
$result = pg_query_params($connection, 
  'SELECT quote_ident(CAST($1 AS text)), quote_ident(CAST($2 AS text));', 
  array($table, $column)
);

$table = pg_fetch_result($result, 0, 0); // safe
$column = pg_fetch_result($result, 0, 1); // safe

$sql = 'INSERT INTO '.$table.'('.$column.') VALUES($1);';

echo $sql;

$result = pg_query_params($connection, $sql, array('foo'));
?>

이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.

침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제

에서 수정
0

몇 마디 만하겠습니다

0리뷰
로그인참여 후 검토

관련 기사

분류에서Dev

이 PHP 코드에서 SQL 삽입 방지

분류에서Dev

이 PHP 코드에서 SQL 주입 방지

분류에서Dev

SQL에 PHP 삽입이 작동하지 않음

분류에서Dev

PHP 코드에 SQL 쿼리 삽입

분류에서Dev

PHP가 SQL 테이블에 \ 삽입

분류에서Dev

테이블에 레코드를 삽입하지 않는 PL / SQL 코드

분류에서Dev

각 루프 PHP에 대해 데이터를 삽입하지 않고 SQL에 삽입

분류에서Dev

이 PHP 코드가 올바른 방법을 삽입하지 않는 이유

분류에서Dev

php foreach 문은 마지막 줄만 삽입하여 SQL에 데이터를 삽입합니다.

분류에서Dev

PHP 코드 삽입 후지도 페이지가 공백이 됨

분류에서Dev

SQL Server에서 SQLite에 업데이트 된 레코드를 삽입하는 방법

분류에서Dev

PHP 변수를 사용하는 JavaScript 코드를 PHP 페이지에 삽입하는 방법

분류에서Dev

SQL Server에서 위반이있는 레코드 삽입

분류에서Dev

PHP에서 SQL 데이터베이스에 여러 행 삽입

분류에서Dev

SQL 테이블에 여러 레코드를 삽입 할 때 순서를 따르지 않습니다.

분류에서Dev

삽입이 아닌 수백만 개의 레코드를 업데이트 할 때 SQL Server에서 로그 증가를 방지하는 방법

분류에서Dev

SQL 테이블에 삽입 된 레코드 수를 찾는 방법

분류에서Dev

레코드가 존재하지 않는 테이블에 MS Access SQL 삽입

분류에서Dev

한 페이지 부트 스트랩 템플릿에 PHP 코드를 삽입하는 방법

분류에서Dev

mysql에서 HTML 코드 이미지 및 href에 삽입

분류에서Dev

삽입 된 현재 비밀번호가 MySQL 데이터베이스에서 올바른 비밀번호인지 PHP 코드 확인하는 방법

분류에서Dev

SQL 행과 텍스트 상자 값 PHP 코드 사이에서 빼는 방법은 무엇입니까?

분류에서Dev

내 SQL 삽입에 PHP

분류에서Dev

내 SQL 삽입에 PHP

분류에서Dev

이 이미지 코드를 PHP에서 에코하는 방법은 무엇입니까?

분류에서Dev

삽입하기 전에 SQL 서버 테이블에서 레코드 삭제

분류에서Dev

C # 코드에서 SQL 데이터베이스에 삽입 할 때 중복 키

분류에서Dev

PHP 내 SQL 삽입이 작동하지 않습니다.

분류에서Dev

PHP 코드에서 SQL 테이블에 값을 만들지 마십시오.

Related 관련 기사

  1. 1

    이 PHP 코드에서 SQL 삽입 방지

  2. 2

    이 PHP 코드에서 SQL 주입 방지

  3. 3

    SQL에 PHP 삽입이 작동하지 않음

  4. 4

    PHP 코드에 SQL 쿼리 삽입

  5. 5

    PHP가 SQL 테이블에 \ 삽입

  6. 6

    테이블에 레코드를 삽입하지 않는 PL / SQL 코드

  7. 7

    각 루프 PHP에 대해 데이터를 삽입하지 않고 SQL에 삽입

  8. 8

    이 PHP 코드가 올바른 방법을 삽입하지 않는 이유

  9. 9

    php foreach 문은 마지막 줄만 삽입하여 SQL에 데이터를 삽입합니다.

  10. 10

    PHP 코드 삽입 후지도 페이지가 공백이 됨

  11. 11

    SQL Server에서 SQLite에 업데이트 된 레코드를 삽입하는 방법

  12. 12

    PHP 변수를 사용하는 JavaScript 코드를 PHP 페이지에 삽입하는 방법

  13. 13

    SQL Server에서 위반이있는 레코드 삽입

  14. 14

    PHP에서 SQL 데이터베이스에 여러 행 삽입

  15. 15

    SQL 테이블에 여러 레코드를 삽입 할 때 순서를 따르지 않습니다.

  16. 16

    삽입이 아닌 수백만 개의 레코드를 업데이트 할 때 SQL Server에서 로그 증가를 방지하는 방법

  17. 17

    SQL 테이블에 삽입 된 레코드 수를 찾는 방법

  18. 18

    레코드가 존재하지 않는 테이블에 MS Access SQL 삽입

  19. 19

    한 페이지 부트 스트랩 템플릿에 PHP 코드를 삽입하는 방법

  20. 20

    mysql에서 HTML 코드 이미지 및 href에 삽입

  21. 21

    삽입 된 현재 비밀번호가 MySQL 데이터베이스에서 올바른 비밀번호인지 PHP 코드 확인하는 방법

  22. 22

    SQL 행과 텍스트 상자 값 PHP 코드 사이에서 빼는 방법은 무엇입니까?

  23. 23

    내 SQL 삽입에 PHP

  24. 24

    내 SQL 삽입에 PHP

  25. 25

    이 이미지 코드를 PHP에서 에코하는 방법은 무엇입니까?

  26. 26

    삽입하기 전에 SQL 서버 테이블에서 레코드 삭제

  27. 27

    C # 코드에서 SQL 데이터베이스에 삽입 할 때 중복 키

  28. 28

    PHP 내 SQL 삽입이 작동하지 않습니다.

  29. 29

    PHP 코드에서 SQL 테이블에 값을 만들지 마십시오.

뜨겁다태그

보관