2011-02-28 1 views
3

코드 -도움말

$price = mysqli_real_escape_string($connect,trim($results['price'])); 

가격은 데이터베이스에서 검색 한 후 사용하여 반향한다 -

echo $price; 

질문 -이 XSS 나 SQL 인젝션에서 충분히 안전한가요? 단순히 숫자 만 포함합니다.

감사

+0

$ 결과 [ '가격'] 사용자 입력이 있습니까? – CJD

+0

@CJD no. mysqli_fetch_array – sarthak

+0

SQL 삽입은 사용자 작업이 데이터베이스에 쓰는 경우에만 발생할 수 있습니다. –

답변

4

검사는 아마 데이터 입력시 수행해야합니다,하지만 당신은 안전하고 또한 출력에서 ​​확인할 수 있습니다. 난 그냥 is_numeric 또는 유사한 출력을 실제로, 번호를 보장하기 위해 사용할 것입니다.

0

표준 연습은 XSS로부터 보호하기 위해 htmlspecialchars() 또는 htmlentities()을 사용하여 출력을 브라우저로 내보내는 것입니다. 그러나 다른 대답에서 언급했듯이 실제 문제는 올바른 데이터가 처음에 데이터베이스에 저장되었는지 여부입니다. 데이터베이스에 저장하기 전에 유효성을 검사하고 이스케이프해야합니다.

0

사용자 입력에서 $results['price']에 대한 입력이있는 경우 엉덩이가 필요합니다.

SQL에 보내기 전에 예상 값으로 강하게 검증/위생 처리해야하는 경우.

0

데이터가 db에서만 읽혀지면 mysqli_real_escape_string()을 사용하여 무시할 수 있습니다. 그것은 db에 쓰여 져야하는 사용자 입력을 피하는 데 유용합니다.

0

mysqli_real_escape_string()은 데이터베이스에 삽입 될 데이터를 이스케이프 처리하여 SQL 삽입을 방지합니다. XSS와는 아무런 관련이 없습니다.

htmlentities()를 사용하여 원하는 작업을 수행해야합니다. 나는 당신에게 eykanal 대답을 읽고 is_numeric을 사용하여 유효성을 검사 할 것을 제안합니다.