mirror of
https://github.com/citizenfx/cfx-server-data.git
synced 2025-02-10 15:42:54 +08:00
Merge pull request #21 from vecchiotom/master
fixed an xss vulnerability, where people could use html in their name to execute it on everyone's scoreboard.
This commit is contained in:
commit
fefd225904
@ -13,7 +13,7 @@ Citizen.CreateThread(function()
|
|||||||
local wantedLevel = GetPlayerWantedLevel(i)
|
local wantedLevel = GetPlayerWantedLevel(i)
|
||||||
r, g, b = GetPlayerRgbColour(i)
|
r, g, b = GetPlayerRgbColour(i)
|
||||||
table.insert(players,
|
table.insert(players,
|
||||||
'<tr style=\"color: rgb(' .. r .. ', ' .. g .. ', ' .. b .. ')\"><td>' .. GetPlayerServerId(i) .. '</td><td>' .. GetPlayerName(i) .. '</td><td>' .. (wantedLevel and wantedLevel or tostring(0)) .. '</td></tr>'
|
'<tr style=\"color: rgb(' .. r .. ', ' .. g .. ', ' .. b .. ')\"><td>' .. GetPlayerServerId(i) .. '</td><td>' .. sanitize(GetPlayerName(i)) .. '</td><td>' .. (wantedLevel and wantedLevel or tostring(0)) .. '</td></tr>'
|
||||||
)
|
)
|
||||||
end
|
end
|
||||||
|
|
||||||
@ -46,3 +46,15 @@ function GetPlayers()
|
|||||||
|
|
||||||
return players
|
return players
|
||||||
end
|
end
|
||||||
|
|
||||||
|
function sanitize(txt)
|
||||||
|
local replacements = {
|
||||||
|
['&' ] = '&',
|
||||||
|
['<' ] = '<',
|
||||||
|
['>' ] = '>',
|
||||||
|
['\n'] = '<br/>'
|
||||||
|
}
|
||||||
|
return txt
|
||||||
|
:gsub('[&<>\n]', replacements)
|
||||||
|
:gsub(' +', function(s) return ' '..(' '):rep(#s-1) end)
|
||||||
|
end
|
||||||
|
Loading…
Reference in New Issue
Block a user