Slide 1

Slide 1 text

PHP E SEGURANÇA SIM, É POSSÍVEL

Slide 2

Slide 2 text

@dianaarnos Dev, Sec, Music, Kung Fu. Dev / Architect @ Senha Segura Evangelist @ PHPSP Evangelist @ PHPWomenBR

Slide 3

Slide 3 text

PHP É A LINGUAGEM MAIS USADA NA WEB

Slide 4

Slide 4 text

No content

Slide 5

Slide 5 text

VEJAMOS:

Slide 6

Slide 6 text

fonte: https://w3techs.com

Slide 7

Slide 7 text

fonte: https://w3techs.com

Slide 8

Slide 8 text

fonte: https://w3techs.com

Slide 9

Slide 9 text

fonte: https://w3techs.com

Slide 10

Slide 10 text

fonte: https://w3techs.com

Slide 11

Slide 11 text

No content

Slide 12

Slide 12 text

É POPULAR

Slide 13

Slide 13 text

MAS MUITO CRITICADO

Slide 14

Slide 14 text

A LINGUAGEM É JULGADA INEFICIENTE E INSEGURA

Slide 15

Slide 15 text

POR DESENVOLVEDORES E EMPRESAS

Slide 16

Slide 16 text

No content

Slide 17

Slide 17 text

No content

Slide 18

Slide 18 text

No content

Slide 19

Slide 19 text

No content

Slide 20

Slide 20 text

No content

Slide 21

Slide 21 text

NÓS SABEMOS O PORQUÊ

Slide 22

Slide 22 text

BAIXA CURVA DE APRENDIZADO

Slide 23

Slide 23 text

BAIXA CURVA DE APRENDIZADO +

Slide 24

Slide 24 text

BAIXA CURVA DE APRENDIZADO + FACILIDADE DE LIDAR COM REQUESTS =

Slide 25

Slide 25 text

BAIXA CURVA DE APRENDIZADO + FACILIDADE DE LIDAR COM REQUESTS = SOBRINHOS

Slide 26

Slide 26 text

No content

Slide 27

Slide 27 text

CÓDIGO LEGADO

Slide 28

Slide 28 text

A CULPA É DO PASSADO

Slide 29

Slide 29 text

SERÁ?

Slide 30

Slide 30 text

fonte: https://w3techs.com

Slide 31

Slide 31 text

PHP 3 E 4?

Slide 32

Slide 32 text

No content

Slide 33

Slide 33 text

fonte: https://w3techs.com

Slide 34

Slide 34 text

70% DOS 80% É PHP 5

Slide 35

Slide 35 text

fonte: https://w3techs.com

Slide 36

Slide 36 text

VAMOS LÁ NO PHP.NET

Slide 37

Slide 37 text

fonte: https://php.net PHP VERSIONS LIFECYCLE

Slide 38

Slide 38 text

NENHUMA VERSÃO DO PHP 5 TEM SUPORTE

Slide 39

Slide 39 text

PHP 7: UMA NOVA ESPERANÇA

Slide 40

Slide 40 text

fonte: https://w3techs.com

Slide 41

Slide 41 text

OPA...

Slide 42

Slide 42 text

fonte: https://php.net

Slide 43

Slide 43 text

36,5% DO PHP 7 NÃO TEM MAIS SUPORTE

Slide 44

Slide 44 text

VAMOS FAZER AS CONTAS?

Slide 45

Slide 45 text

80% DA WEB É PHP

Slide 46

Slide 46 text

70% DOS 80% É 5.X E NÃO TEM MAIS SUPORTE

Slide 47

Slide 47 text

O QUE NOS DEIXA COM 30% DOS 80% DA WEB SENDO 7.X

Slide 48

Slide 48 text

PORTANTO 24% DA WEB É PHP 7.X

Slide 49

Slide 49 text

DESSES 24%, 36,5% SÃO PHP 7.0 E NÃO TEM MAIS SUPORTE

Slide 50

Slide 50 text

LOGO, TEMOS 63,5% DOS 24% DA WEB COM VERSÕES VÁLIDAS

Slide 51

Slide 51 text

ENTÃO...

Slide 52

Slide 52 text

EM 2019

Slide 53

Slide 53 text

2019

Slide 54

Slide 54 text

APESAR DE 80% DA WEB SER PHP….

Slide 55

Slide 55 text

SÓ 15,24% DA WEB TEM VERSÕES SEGURAS E ATUALIZADAS DE PHP

Slide 56

Slide 56 text

No content

Slide 57

Slide 57 text

E DAÍ?

Slide 58

Slide 58 text

fonte: https://www.cvedetails.com

Slide 59

Slide 59 text

fonte: https://www.cvedetails.com

Slide 60

Slide 60 text

fonte: https://www.cvedetails.com

Slide 61

Slide 61 text

fonte: https://www.cvedetails.com

Slide 62

Slide 62 text

fonte: https://www.cvedetails.com

Slide 63

Slide 63 text

QUEM ESCOLHE MANTER AS VERSÕES INSEGURAS NO AR?

Slide 64

Slide 64 text

JÁ TAVA ASSIM

Slide 65

Slide 65 text

JÁ TAVA ASSIM DÁ TRABALHO ATUALIZAR

Slide 66

Slide 66 text

JÁ TAVA ASSIM DÁ TRABALHO ATUALIZAR É CULPA DO FRAMEWORK

Slide 67

Slide 67 text

JÁ TAVA ASSIM DÁ TRABALHO ATUALIZAR É CULPA DO FRAMEWORK NÃO É O FOCO DO TIME AGORA

Slide 68

Slide 68 text

JÁ TAVA ASSIM DÁ TRABALHO ATUALIZAR É CULPA DO FRAMEWORK O DEV QUE FEZ NÃO TRABALHA MAIS AQUI NÃO É O FOCO DO TIME AGORA

Slide 69

Slide 69 text

No content

Slide 70

Slide 70 text

ESTAMOS SEMPRE BUSCANDO QUEBRAR O PRECONCEITO

Slide 71

Slide 71 text

QUEREMOS ESPALHAR AS BOAS PRÁTICAS

Slide 72

Slide 72 text

“PARTE DA ZEND ENGINE FOI REESCRITA”

Slide 73

Slide 73 text

“PERFORMANCE MUITO APRIMORADA”

Slide 74

Slide 74 text

fonte: http://www.zend.com/en/resources/php7_infographic

Slide 75

Slide 75 text

fonte: http://www.zend.com/en/resources/php7_infographic

Slide 76

Slide 76 text

fonte: http://www.zend.com/en/resources/php7_infographic

Slide 77

Slide 77 text

No content

Slide 78

Slide 78 text

E A SEGURANÇA?

Slide 79

Slide 79 text

A LINGUAGEM EVOLUI...

Slide 80

Slide 80 text

PHP 7.0:

Slide 81

Slide 81 text

- FILTERED UNSERIALIZE() PHP 7.0:

Slide 82

Slide 82 text

- FILTERED UNSERIALIZE() PHP 7.0: - CSPRNG FUNCTIONS:

Slide 83

Slide 83 text

- FILTERED UNSERIALIZE() PHP 7.0: - RANDOM_BYTES() E RANDOM_INT() - CSPRNG FUNCTIONS:

Slide 84

Slide 84 text

PHP 7.1:

Slide 85

Slide 85 text

PHP 7.1:

Slide 86

Slide 86 text

PHP 7.2:

Slide 87

Slide 87 text

- PASSWORD_ARGON2I PHP 7.2:

Slide 88

Slide 88 text

- PASSWORD_ARGON2I PHP 7.2: - LIBSODIUM NATIVA (CORE EXTENSION)

Slide 89

Slide 89 text

- PASSWORD_ARGON2I PHP 7.2: - LIBSODIUM NATIVA (CORE EXTENSION) - MCRYPT REMOVIDA DO CORE

Slide 90

Slide 90 text

PHP 7.3:

Slide 91

Slide 91 text

- MELHORIAS NA IMPLEMENTAÇÃO DE ARGON2: PHP 7.3:

Slide 92

Slide 92 text

- MELHORIAS NA IMPLEMENTAÇÃO DE ARGON2: PHP 7.3: - ARGON2I, ARGON2D, ARGON2ID

Slide 93

Slide 93 text

ONE MORE THING...

Slide 94

Slide 94 text

PSRs DE SEGURANÇA

Slide 95

Slide 95 text

fonte: https://www.php-fig.org/

Slide 96

Slide 96 text

MAS...

Slide 97

Slide 97 text

fonte: https://groups.google.com/forum/#!forum/php-fig

Slide 98

Slide 98 text

“This thread is an appeal for people who wish to join the working group so we can get the ball rolling with a (re)-entrance vote.”

Slide 99

Slide 99 text

PSR-9

Slide 100

Slide 100 text

- PADRÃO PARA PESQUISADORES REPORTAREM VULNERABILIDADES PARA UM PROJETO PSR-9

Slide 101

Slide 101 text

PSR-10

Slide 102

Slide 102 text

- PADRÃO PARA UM PROJETO DIVULGAR PUBLICAMENTE SUAS FALHAS DE SEGURANÇA E MEDIDAS CORRETIVAS PSR-10

Slide 103

Slide 103 text

ESSES SÃO OS ESFORÇOS DA LINGUAGEM

Slide 104

Slide 104 text

E OS SEUS?

Slide 105

Slide 105 text

ALGUMAS BOAS PRÁTICAS

Slide 106

Slide 106 text

ATUALIZAR O PHP REGULARMENTE

Slide 107

Slide 107 text

ATUALIZAR PACKAGES REGULARMENTE

Slide 108

Slide 108 text

HTTPS SEMPRE

Slide 109

Slide 109 text

NUNCA EXIBIR ERROS E WARNINGS

Slide 110

Slide 110 text

FILTRAR E VALIDAR TODO TIPO DE DADO

Slide 111

Slide 111 text

USE QUERIES PARAMETRIZADAS (PREPARED STATEMENTS)

Slide 112

Slide 112 text

DEFINIR OPEN_BASEDIR NO PHP.INI

Slide 113

Slide 113 text

CUIDADO AO LIDAR COM SESSÕES DE USUÁRIO

Slide 114

Slide 114 text

CSRF TOKENS EM FORMULÁRIOS

Slide 115

Slide 115 text

LINKS DE REFERÊNCIA http://bit.ly/phpx-links

Slide 116

Slide 116 text

ACESSO AOS SLIDES http://bit.ly/phpx-seguranca

Slide 117

Slide 117 text

OBRIGADA! AVALIE NO JOIND.IN https://joind.in/talk/71f42