Windows Server 2019 üzerinde web server ayarlarınızı yaptınız sitenizi çalışıtıryorsunuz ancak SQL injection atakları alıyorsanız. IIS üzerinden request filtiring ile SQL injection ataklarını engelleyebilirsiniz. Bunun için sisteminizde Web server (IIS) altından bulunan “security” featureları içerisinde request filtiringde rule oluşturarak işlemlerinizi tamamlayabilirsiniz.
Request filtiring featurenu yüklemek için aşağıdaki adımları takip edebilirsiniz.
- Windows Server 2019 Server Manager açınız.
- Server Manager penceresinde dashboard sekmesi altında Add Roles and Featrues menüsüne tıklayınız.
- Add roles and features wizard penceresinde “Server Roles” adımına geliniz.
- Roles bölümü altından “Web Server (IIS) -> Web server -> Security” dizinine geliniz.
- Security dizini altından “Request Filtiring” seçip yükleme işlemini tamamlayınız.
Aynı işlemi PowerShell üzerindende aşağıdaki komut ile tamamlayabilirsiniz.
Install-WindowsFeature Web-Filtering
Yükleme işlemini tamamladıktan sonra IIS 10 açınız.
Request filtiring ile SQL injection engellemek için işlemlerimize başlıyoruz.
- Request Filtiring menüsüne tıklayınız.
- Rules sekmesine tıklayınız.
- Sağ bölümden “Add Filtiring Rule” menüsüne basınız.
- Add Filtering Rule
- Engellemek istediğiniz string değerlerini “Deny String” altındaki menüye ekleyebilirsiniz.
- Kodunuza göre belki izin vermek istediğiniz string değerlerinizi “Applies To” bölümünden ekleyerek düzenleyebilirisiniz.
Aynı işlemleri PowerShell ile aşağıdaki komutlar bütününü düzenleyerek tamamlayabilirsiniz.
Start-IISCommitDelay
$filteringRules = Get-IISConfigSection -CommitPath 'Default Web Site' -SectionPath 'system.webServer/security/requestFiltering' | Get-IISConfigCollection -CollectionName 'filteringRules'
New-IISConfigCollectionElement -ConfigCollection $filteringRules -ConfigAttribute @{ 'name' = 'Block Image Leeching'; 'scanUrl' = $false; 'scanQueryString' = $false; 'scanAllRaw' = $false; }
$Rule = Get-IISConfigCollectionElement -ConfigCollection $filteringRules -ConfigAttribute @{ 'name' = 'Block Image Leeching' }
$ruleScanHeaders = Get-IISConfigCollection -ConfigElement $Rule -CollectionName 'scanHeaders'
New-IISConfigCollectionElement -ConfigCollection $ruleScanHeaders -ConfigAttribute @{ 'requestHeader' = 'User-Agent' }
$ruleAppliesTo = Get-IISConfigCollection -ConfigElement $Rule -CollectionName 'appliesTo'
New-IISConfigCollectionElement -ConfigCollection $ruleAppliesTo -ConfigAttribute @{ 'fileExtension' = '.gif' }
New-IISConfigCollectionElement -ConfigCollection $ruleAppliesTo -ConfigAttribute @{ 'fileExtension' = '.jpg' }
New-IISConfigCollectionElement -ConfigCollection $ruleAppliesTo -ConfigAttribute @{ 'fileExtension' = '.png' }
$ruleDenyStrings = Get-IISConfigCollection -ConfigElement $Rule -CollectionName 'denyStrings'
New-IISConfigCollectionElement -ConfigCollection $ruleDenyStrings -ConfigAttribute @{ 'string' = 'leech-bot' }
Stop-IISCommitDelay