Merhaba,
daha önceden keşfetmiş olduğum ve uygulamanın işleyişini bozan bir XSS tipinde gerektiğinde Session Hijacking'e kadar varabilecek bir yüksek riskli olmayan bir açık mevcuttu. Bu tip XSS denemelerine karşı bir fonksiyon oluşturdum. Standart kullanılan tagları herhangi bir kayıt oluşturma veya veritabanına insert/update aşamasında izin vermesi açısından önlem niteliğindedir.
Açık hakkında detaylı bilgiye buradan ulaşabilirsiniz --> Tıklayınız
Fonksiyon:
function TMainForm.protectionXSSforUniGUI(Value: String): Boolean; {dev. halil han badem}
const
blockTags: Array[0..11] of AnsiString=('<script>',
'<embed>',
'<applet>',
'<frameset>',
'<form>',
'<iframe>',
'<meta>',
'<layer>',
'<object>',
'<img>',
'<link>',
'<div>');
blockJS: Array[0..6] of AnsiString=('src=',
'href=',
'eval()',
'expression()',
'vbscript:',
'url=',
'url()');
var
I: Integer;
begin
Result := False;
for I := 0 to Length(blockTags) - 1 do
begin
if ContainsText(Value, blockTags[I]) then
begin
Result := True;
end;
end;
for I := 0 to Length(blockJS) - 1 do
begin
if ContainsText(Value, blockJS[I]) then
begin
Result := True;
end;
end;
end;
Tüm projeye erişmek için Github'ta ki repo üzerinden erişebilirsiniz --> Tıklayınız
Sorularınız mevcut ise aşağıda belirtebilirsiniz.
İyi çalışmalar.