Securing PHP Survey of the solutions Stanislav Malyshev - - PowerPoint PPT Presentation

securing php
SMART_READER_LITE
LIVE PREVIEW

Securing PHP Survey of the solutions Stanislav Malyshev - - PowerPoint PPT Presentation

Securing PHP Survey of the solutions Stanislav Malyshev stas@zend.com Most code is extremely buggy Can we help? Input filtering Unauthorized code (remote include) Unauthorized DB access (SQL Injection) Client subversion (XSS,


slide-1
SLIDE 1

Securing PHP

Survey of the solutions Stanislav Malyshev stas@zend.com

slide-2
SLIDE 2

Most code is extremely buggy… Can we help?

slide-3
SLIDE 3

Input filtering

  • Unauthorized code (remote include)
  • Unauthorized DB access (SQL Injection)
  • Client subversion (XSS, XSRF)
slide-4
SLIDE 4

Let’s protect all data

Magic quotes: ☺ a.php?data=1’2 -> $data == “1\’2” can be inside quotes Optional No support for context

slide-5
SLIDE 5

Let’s restrict the user

Safe mode: ☺ Allow access only to own files ☺ Allow only “safe” actions No OS support Too many modules not controlled Too hard to find out all “unsafe” ones and not kill apps

slide-6
SLIDE 6

Let’s filter

☺ $var = filter_input(INPUT_GET, 'var'); ☺ Standard filters for standard use-cases No time machine Voluntary

slide-7
SLIDE 7

Let’s watch the data

Data tainting ☺ No unfiltered data in sensitive contexts How do I know the filtering was right? Complex implementation – contexts Performance

slide-8
SLIDE 8

Static vs. Dynamic

Static ☺ Can be as slow as it needs to ☺False positive OK ☺External engine $$foo = $$bar $foo->$bar($baz) eval($foo.$bar) Dynamic ☺Real code, real data ☺ Can prevent attack Need for speed Engine modification Breaks applications

slide-9
SLIDE 9

Let’s watch the data - II

CSSE ☺ Track each character of data ☺ Ensure the data is safely Safety is context-dependant Modification for all operations Performance?

slide-10
SLIDE 10

Let’s watch the input & learn

Runtime detection ☺ No need to study application ☺ No need to study context Complex heuristics Needs data collection

slide-11
SLIDE 11