SQL injection is a code injection technique that attackers use to exploit vulnerabilities in a web application’s database layer. This can lead to unauthorized access, data theft, data loss, and even loss of control over the server.
SQL injection vulnerabilities are among the most common and most harmful security flaws in web applications. These vulnerabilities can lead to severe consequences, including data breaches and unauthorized access to sensitive data.
Do not concatenate strings to form SQL queries; instead, use parameterized queries or prepared statements. Concatenating strings can lead to SQL injection if the inputs are not properly sanitized.
Non-Compliant Code Examples
<?phpclassUserControllerextendsController{publicfunctionshow($userId){$query='SELECT * FROM users WHERE id = '.$userId;$result=dbx_query($connection,$query);returnview('user.show',['users'=>$result]);}publicfunctiondisplay($userId){$connection=db2_connect($dbName,$dbUser,$dbPass);$sql='SELECT * FROM users WHERE id = '.$userId;$result=db2_exec($connection,$sql);returnview('user.show',['users'=>$result]);}publicfunctionfindByEmail($email){$query='SELECT * FROM users WHERE email = '.$email;$result=mysql_unbuffered_query($query,$connection);returnview('user.show',['users'=>$result]);}}
Compliant Code Examples
<?phpclassUserControllerextendsController{publicfunctionshow($userId){$result=DB::table('users')->where('id',$userId)->get();returnview('user.show',['users'=>$result]);}publicfunctiondisplay($userId){$connection=db2_connect($dbName,$dbUser,$dbPass);$sql='SELECT * FROM users WHERE id = ?';$stmt=db2_prepare($connection,$sql);db2_bind_param($stmt,1,"userId",DB2_PARAM_IN);db2_execute($stmt);$result=db2_fetch_assoc($stmt);returnview('user.show',['users'=>$result]);}publicfunctionfindByEmail($email){$result=DB::table('users')->where('email',$email)->get();returnview('user.show',['users'=>$result]);}}
원활한 통합. Datadog Code Security를 경험해 보세요
Datadog Code Security
이 규칙을 사용해 Datadog Code Security로 코드를 분석하세요
규칙 사용 방법
1
2
rulesets:- php-security # Rules to enforce PHP security.
리포지토리 루트에 위의 내용을 포함하는 static-analysis.datadog.yml을 만듭니다
무료 IDE 플러그인을 사용하거나 CI 파이프라인에 Code Security 검사를 추가합니다