2009-12-11 4 views

답변

3

HTML에서 다른 이름을 지정하고 PHP 코드에서 데이터베이스 필드 이름과 HTML 필드 이름을 수동으로 매핑하십시오.

실제로, prepared statements을 사용하고 적절한 권한 부여 및 오류 검사를 수행하는 경우 사람들이 테이블 필드 이름을 알고 있는지 여부는 중요하지 않습니다.

2

입력 필드 이름의 이름을 바꿀 수 있다고 생각한다면 문제가 있다고 생각합니다. 어쨌든 어떤 지점에서 올바른 SQL 컬럼에 링크해야합니다.

이것은 보안상의 문제가됩니다.

응용 프로그램에서 입력을 처리하는 방법에주의를 기울이는 것이 더 현명한 접근 방법처럼 들리지만,

1

이 문제가 정말로 우려되는 경우 사용자 field1, field2 (또는 f1, f2) 만 사용자의 실험실 도서 데이터베이스 필드에 매핑하십시오. 그러나 HTML 코드에서 데이터베이스 호출을 수행하지 않는 한, 필드 이름이없는 양식을 찾아 보는 것만으로 데이터베이스 구조 자체에 대해 수집 할 수있는 것이 거의 없습니다.

2

대개는 위생/취급 편의에 접두사와 접미사를 추가합니다. 필드 그냥 편지, 아무것도를 포함해야하는 경우

예를 들어, 난 필터링 된 HTML, hf_field_name 또는 전체 HTML hx_field_name ... 양식을 알거야 스크립트를 포함 할 수 있습니다 그렇지 않으면 경우, 그것을 tx_field_name 이름을거야 접두사의 기본 값을 검사하고 위생 처리하는 방법. 당신의 의미가 명시 적으로 데이터베이스의 열 이름을 숨길 경우

그러나

는, 음, 당신이 원하는 이름, foo, bar을 준, 또는 임의의 접미사를 추가, 또는 HTML 필드에 허용되는 -_을 (교체 이름,하지만 PS

) 데이터베이스 열 이름 : 난 당신 가 (.. 그리고 조금 양식을 처리 할 수 ​​

$values = $_POST; 
$n_val = count($values); 
$i = 0; 
foreach($values AS $key => $value){ 
    $pairs .= " `$key` = '$value' "; 
    if($n_val > $i){ 
     $pairs .= ', '; 
    } 
} 
thedbyouprefer_query("UPDATE table SET $pairs WHERE id = '42'"); 

같은 코드를 사용하지만, PHP로 매핑되지 않습니다 희망 준비된 역마차는 나쁘지 않을거야.)