코드 -도움말
$price = mysqli_real_escape_string($connect,trim($results['price']));
가격은 데이터베이스에서 검색 한 후 사용하여 반향한다 -
echo $price;
질문 -이 XSS 나 SQL 인젝션에서 충분히 안전한가요? 단순히 숫자 만 포함합니다.
감사
코드 -도움말
$price = mysqli_real_escape_string($connect,trim($results['price']));
가격은 데이터베이스에서 검색 한 후 사용하여 반향한다 -
echo $price;
질문 -이 XSS 나 SQL 인젝션에서 충분히 안전한가요? 단순히 숫자 만 포함합니다.
감사
검사는 아마 데이터 입력시 수행해야합니다,하지만 당신은 안전하고 또한 출력에서 확인할 수 있습니다. 난 그냥 is_numeric
또는 유사한 출력을 실제로, 번호를 보장하기 위해 사용할 것입니다.
표준 연습은 XSS로부터 보호하기 위해 htmlspecialchars()
또는 htmlentities()
을 사용하여 출력을 브라우저로 내보내는 것입니다. 그러나 다른 대답에서 언급했듯이 실제 문제는 올바른 데이터가 처음에 데이터베이스에 저장되었는지 여부입니다. 데이터베이스에 저장하기 전에 유효성을 검사하고 이스케이프해야합니다.
사용자 입력에서 $results['price']
에 대한 입력이있는 경우 엉덩이가 필요합니다.
SQL에 보내기 전에 예상 값으로 강하게 검증/위생 처리해야하는 경우.
데이터가 db에서만 읽혀지면 mysqli_real_escape_string()을 사용하여 무시할 수 있습니다. 그것은 db에 쓰여 져야하는 사용자 입력을 피하는 데 유용합니다.
mysqli_real_escape_string()은 데이터베이스에 삽입 될 데이터를 이스케이프 처리하여 SQL 삽입을 방지합니다. XSS와는 아무런 관련이 없습니다.
htmlentities()를 사용하여 원하는 작업을 수행해야합니다. 나는 당신에게 eykanal 대답을 읽고 is_numeric을 사용하여 유효성을 검사 할 것을 제안합니다.
$ 결과 [ '가격'] 사용자 입력이 있습니까? – CJD
@CJD no. mysqli_fetch_array – sarthak
SQL 삽입은 사용자 작업이 데이터베이스에 쓰는 경우에만 발생할 수 있습니다. –