Dip Your Toes in the Sea of Security (PHP Cambridge)

James Titcumb
James TitcumbFreelance at Roave, LLC
Dip Your Toes
in the Sea of Security
James Titcumb
PHP Cambridge
28th January 2015
James Titcumb
www.jamestitcumb.com
www.protected.co.uk
www.phphants.co.uk
www.phpsouthcoast.co.uk
@asgrim
Who is this guy?
Some simple code...
<?php
$a = (int)$_GET['a'];
$b = (int)$_GET['b'];
$result = $a + $b;
printf('The answer is %d', $result);
The Golden Rules
The Golden Rules
(my made up golden rules)
1. Keep it simple
2. Know the risks
3. Fail securely
4. Don’t reinvent the wheel
5. Never trust anything
OWASP
& the OWASP Top 10
https://www.owasp.org/
Application Security
(mainly PHP applications)
Always remember…
Filter Input
Escape Output
SQL Injection (#1)
http://xkcd.com/327/
SQL Injection (#1)
1. Use PDO / mysqli
2. Use prepared / parameterized statements
SQL Injection (#1)
<?php
// user_id=1; DROP TABLE users; --
$user_id = $_GET['user_id'];
$sql = "
SELECT * FROM users
WHERE user_id = {$user_id}";
$db->execute($sql);
✘
SQL Injection (#1)
<?php
$user_id = $_GET['user_id'];
$sql = "
SELECT * FROM users
WHERE user_id = :userid";
$stmt = $db->prepare($sql);
$stmt->bind('userid', $user_id);
$stmt->execute();
✓
exec($_GET)
https://github.com/search?q=exec%28%24_GET&ref=cmdform&type=Code
eval()
https://github.com/search?q=eval%28%24_GET&type=Code&ref=searchresults
Cross-Site Scripting / XSS
(#3)
Cross-Site Scripting / XSS (#3)
● Escape output
<?php
$unfilteredInput = '<script type="text/javascript">...</script>';
// Unescaped - JS will run :'(
echo $unfilteredInput;
// Escaped - JS will not run :)
echo htmlspecialchars($string, ENT_QUOTES, 'UTF-8');
Cross-Site Request
Forgery / CSRF (#8)
<?php
if (!$isPost) {
$csrfToken = hash("sha512",mt_rand(0,mt_getrandmax()));
$_SESSION['csrf_token'] = $csrfToken;
// ... output the form ...
echo '<input type="hidden" name="csrf_token" value="'.$csrfToken.'"
/>';
} else if ($isPost) {
if ($_SESSION['csrf_token'] != $_POST['csrf_token']) {
die("Token invalid...");
}
// ... handle the form ...
}
Cross-Site Request Forgery / CSRF (#8)
Errors, Exceptions &
Logging (#6)
curl + https
<?php
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, false);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
✘
curl + https
<?php
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 2);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, true);
curl_setopt($ch, CURLOPT_CAINFO, "/path/to/certificate");
✓
WordPress
WordPress
Urgh.
We are not security
experts!
We are not security
experts!
… but we CAN write secure code
Be the threat
Think Differently
What do you want?
Think Differently
How do you get it?
Think Differently
Threat Modelling
D.R.E.A.D.
Authentication
& Authorization
Authentication
Verifying Identity
CRYPTOGRAPHY
IS
HARD
CRYPTOGRAPHY
IS
HARD
NEVER EVER “ROLL YOUR OWN”
CRYPTOGRAPHY
IS
HARD
NEVER EVER “ROLL YOUR OWN”
EVER!!!
Case Study: Custom Authentication
We thought about doing this…
Case Study: Custom Authentication
We thought about doing this…
Case Study: Custom Authentication
We thought about doing this…
✘
Password Hashing
password_hash()
Authorization
Verifying Access
Linux Server Security
Create an SSH Fortress
Firewalls
IPTABLES
#!/bin/bash
IPT="/sbin/iptables"
$IPT --flush
$IPT --delete-chain
$IPT -P INPUT DROP
$IPT -P FORWARD DROP
$IPT -P OUTPUT DROP
# Loopback
$IPT -A INPUT -i lo -j ACCEPT
$IPT -A OUTPUT -o lo -j ACCEPT
# Inbound traffic
$IPT -A INPUT -p tcp --dport ssh -j
ACCEPT
$IPT -A INPUT -p tcp --dport 80 -j ACCEPT
# Outbound traffic
$IPT -A OUTPUT -p tcp --dport 80 -j
ACCEPT
$IPT -A OUTPUT -p udp --dport 53 -m state
Mitigate Brute Force
Attacks
Install Only
What You Need
Case Study: Be Minimal
Internets
Postfix
Squid Proxy
(badly configured)
hacker
spam
Resources
● http://securingphp.com/
● https://www.owasp.org/
● http://blog.ircmaxell.com/
The Golden Rules
1. Keep it simple
2. Know the risks
3. Fail securely
4. Don’t reinvent the wheel
5. Never trust anything / anyone
If you follow all this, you get...
If you follow all this, you get...
Questions?
James Titcumb
@asgrim
Thanks for watching!
1 of 57

Recommended

Dip Your Toes in the Sea of Security (DPC 2015) by
Dip Your Toes in the Sea of Security (DPC 2015)Dip Your Toes in the Sea of Security (DPC 2015)
Dip Your Toes in the Sea of Security (DPC 2015)James Titcumb
584 views56 slides
Dip Your Toes in the Sea of Security (PHP UK 2016) by
Dip Your Toes in the Sea of Security (PHP UK 2016)Dip Your Toes in the Sea of Security (PHP UK 2016)
Dip Your Toes in the Sea of Security (PHP UK 2016)James Titcumb
1.1K views84 slides
Dip Your Toes in the Sea of Security (PHP Dorset, 2nd June 2014) by
Dip Your Toes in the Sea of Security (PHP Dorset, 2nd June 2014)Dip Your Toes in the Sea of Security (PHP Dorset, 2nd June 2014)
Dip Your Toes in the Sea of Security (PHP Dorset, 2nd June 2014)James Titcumb
2.9K views53 slides
OWASP PHPIDS talk slides by
OWASP PHPIDS talk slidesOWASP PHPIDS talk slides
OWASP PHPIDS talk slidesguestd34230
837 views35 slides
PHP Secure Programming by
PHP Secure ProgrammingPHP Secure Programming
PHP Secure ProgrammingBalavignesh Kasinathan
2.5K views39 slides
Open source e cloud per il non profit - settembre 2016 - by
Open source e cloud per il non profit - settembre 2016 -Open source e cloud per il non profit - settembre 2016 -
Open source e cloud per il non profit - settembre 2016 -Claudio Tancini
953 views10 slides

More Related Content

Viewers also liked

Michael Durante Western Reserve Blackwall Partners 1Q12 by
Michael Durante Western Reserve Blackwall Partners  1Q12Michael Durante Western Reserve Blackwall Partners  1Q12
Michael Durante Western Reserve Blackwall Partners 1Q12Michael Durante
962 views12 slides
Reputation Advocate - The Value of Reviews by
Reputation Advocate - The Value of ReviewsReputation Advocate - The Value of Reviews
Reputation Advocate - The Value of ReviewsReputation Advocate
228 views6 slides
Инструкция по настройке сервиса Daas на базе мини пк by
Инструкция по настройке сервиса  Daas на базе мини пкИнструкция по настройке сервиса  Daas на базе мини пк
Инструкция по настройке сервиса Daas на базе мини пкЕлена Кузовкина
435 views18 slides
Composer Tutorial (PHP Hampshire Sept 2013) by
Composer Tutorial (PHP Hampshire Sept 2013)Composer Tutorial (PHP Hampshire Sept 2013)
Composer Tutorial (PHP Hampshire Sept 2013)James Titcumb
4.1K views14 slides
программа «пять ролей менеджера компании франчайзора by
программа  «пять ролей менеджера компании  франчайзорапрограмма  «пять ролей менеджера компании  франчайзора
программа «пять ролей менеджера компании франчайзораЕлена Виль-Вильямс
281 views7 slides
Инструкция по настройке сервиса Daas для Windows by
Инструкция по настройке сервиса  Daas для WindowsИнструкция по настройке сервиса  Daas для Windows
Инструкция по настройке сервиса Daas для WindowsЕлена Кузовкина
441 views13 slides

Viewers also liked(19)

Michael Durante Western Reserve Blackwall Partners 1Q12 by Michael Durante
Michael Durante Western Reserve Blackwall Partners  1Q12Michael Durante Western Reserve Blackwall Partners  1Q12
Michael Durante Western Reserve Blackwall Partners 1Q12
Michael Durante962 views
Инструкция по настройке сервиса Daas на базе мини пк by Елена Кузовкина
Инструкция по настройке сервиса  Daas на базе мини пкИнструкция по настройке сервиса  Daas на базе мини пк
Инструкция по настройке сервиса Daas на базе мини пк
Composer Tutorial (PHP Hampshire Sept 2013) by James Titcumb
Composer Tutorial (PHP Hampshire Sept 2013)Composer Tutorial (PHP Hampshire Sept 2013)
Composer Tutorial (PHP Hampshire Sept 2013)
James Titcumb4.1K views
krishna by mjfire
krishnakrishna
krishna
mjfire1.5K views
Thalassemia and Stem cell transplant by spa718
Thalassemia and Stem cell transplantThalassemia and Stem cell transplant
Thalassemia and Stem cell transplant
spa7182.9K views
Rockin Online Course for All Learners by TeachGoodStuff
Rockin Online Course for All LearnersRockin Online Course for All Learners
Rockin Online Course for All Learners
TeachGoodStuff359 views
스펙 없이 대기업 들어가기 by Ji Hyeok Kim
스펙 없이 대기업 들어가기스펙 없이 대기업 들어가기
스펙 없이 대기업 들어가기
Ji Hyeok Kim3.9K views
Trabajo de carlos salazar by Carhumsapro
Trabajo de carlos salazarTrabajo de carlos salazar
Trabajo de carlos salazar
Carhumsapro152 views
Sickle cell disease” (SCD): a project of curative treatment and informatics... by Claudio Tancini
Sickle cell disease” (SCD): a project of  curative treatment and  informatics...Sickle cell disease” (SCD): a project of  curative treatment and  informatics...
Sickle cell disease” (SCD): a project of curative treatment and informatics...
Claudio Tancini588 views
คำราชาศัพท์ by Marr Ps
คำราชาศัพท์คำราชาศัพท์
คำราชาศัพท์
Marr Ps3.7K views

Similar to Dip Your Toes in the Sea of Security (PHP Cambridge)

Dip Your Toes in the Sea of Security (PHP MiNDS January Meetup 2016) by
Dip Your Toes in the Sea of Security (PHP MiNDS January Meetup 2016)Dip Your Toes in the Sea of Security (PHP MiNDS January Meetup 2016)
Dip Your Toes in the Sea of Security (PHP MiNDS January Meetup 2016)James Titcumb
629 views77 slides
Dip Your Toes in the Sea of Security by
Dip Your Toes in the Sea of SecurityDip Your Toes in the Sea of Security
Dip Your Toes in the Sea of SecurityJames Titcumb
463 views88 slides
Dip Your Toes in the Sea of Security (PHP Berkshire Nov 2015) by
Dip Your Toes in the Sea of Security (PHP Berkshire Nov 2015)Dip Your Toes in the Sea of Security (PHP Berkshire Nov 2015)
Dip Your Toes in the Sea of Security (PHP Berkshire Nov 2015)James Titcumb
430 views76 slides
Dip Your Toes In The Sea Of Security (PHPNW16) by
Dip Your Toes In The Sea Of Security (PHPNW16)Dip Your Toes In The Sea Of Security (PHPNW16)
Dip Your Toes In The Sea Of Security (PHPNW16)James Titcumb
467 views83 slides
Dip Your Toes in the Sea of Security (phpDay 2016) by
Dip Your Toes in the Sea of Security (phpDay 2016)Dip Your Toes in the Sea of Security (phpDay 2016)
Dip Your Toes in the Sea of Security (phpDay 2016)James Titcumb
456 views83 slides
Dip Your Toes in the Sea of Security (CoderCruise 2017) by
Dip Your Toes in the Sea of Security (CoderCruise 2017)Dip Your Toes in the Sea of Security (CoderCruise 2017)
Dip Your Toes in the Sea of Security (CoderCruise 2017)James Titcumb
335 views88 slides

Similar to Dip Your Toes in the Sea of Security (PHP Cambridge)(20)

Dip Your Toes in the Sea of Security (PHP MiNDS January Meetup 2016) by James Titcumb
Dip Your Toes in the Sea of Security (PHP MiNDS January Meetup 2016)Dip Your Toes in the Sea of Security (PHP MiNDS January Meetup 2016)
Dip Your Toes in the Sea of Security (PHP MiNDS January Meetup 2016)
James Titcumb629 views
Dip Your Toes in the Sea of Security by James Titcumb
Dip Your Toes in the Sea of SecurityDip Your Toes in the Sea of Security
Dip Your Toes in the Sea of Security
James Titcumb463 views
Dip Your Toes in the Sea of Security (PHP Berkshire Nov 2015) by James Titcumb
Dip Your Toes in the Sea of Security (PHP Berkshire Nov 2015)Dip Your Toes in the Sea of Security (PHP Berkshire Nov 2015)
Dip Your Toes in the Sea of Security (PHP Berkshire Nov 2015)
James Titcumb430 views
Dip Your Toes In The Sea Of Security (PHPNW16) by James Titcumb
Dip Your Toes In The Sea Of Security (PHPNW16)Dip Your Toes In The Sea Of Security (PHPNW16)
Dip Your Toes In The Sea Of Security (PHPNW16)
James Titcumb467 views
Dip Your Toes in the Sea of Security (phpDay 2016) by James Titcumb
Dip Your Toes in the Sea of Security (phpDay 2016)Dip Your Toes in the Sea of Security (phpDay 2016)
Dip Your Toes in the Sea of Security (phpDay 2016)
James Titcumb456 views
Dip Your Toes in the Sea of Security (CoderCruise 2017) by James Titcumb
Dip Your Toes in the Sea of Security (CoderCruise 2017)Dip Your Toes in the Sea of Security (CoderCruise 2017)
Dip Your Toes in the Sea of Security (CoderCruise 2017)
James Titcumb335 views
Proposed PHP function: is_literal() by Craig Francis
Proposed PHP function: is_literal()Proposed PHP function: is_literal()
Proposed PHP function: is_literal()
Craig Francis45 views
Dip Your Toes in the Sea of Security (PHP South Africa 2017) by James Titcumb
Dip Your Toes in the Sea of Security (PHP South Africa 2017)Dip Your Toes in the Sea of Security (PHP South Africa 2017)
Dip Your Toes in the Sea of Security (PHP South Africa 2017)
James Titcumb306 views
Dip Your Toes in the Sea of Security (IPC Fall 2017) by James Titcumb
Dip Your Toes in the Sea of Security (IPC Fall 2017)Dip Your Toes in the Sea of Security (IPC Fall 2017)
Dip Your Toes in the Sea of Security (IPC Fall 2017)
James Titcumb475 views
Dip Your Toes in the Sea of Security (ConFoo YVR 2017) by James Titcumb
Dip Your Toes in the Sea of Security (ConFoo YVR 2017)Dip Your Toes in the Sea of Security (ConFoo YVR 2017)
Dip Your Toes in the Sea of Security (ConFoo YVR 2017)
James Titcumb244 views
Slides by vti
SlidesSlides
Slides
vti554 views
Ajax Security by Joe Walker
Ajax SecurityAjax Security
Ajax Security
Joe Walker42.6K views
Eight simple rules to writing secure PHP programs by Aleksandr Yampolskiy
Eight simple rules to writing secure PHP programsEight simple rules to writing secure PHP programs
Eight simple rules to writing secure PHP programs
My app is secure... I think by Wim Godden
My app is secure... I thinkMy app is secure... I think
My app is secure... I think
Wim Godden122 views
Security 202 - Are you sure your site is secure? by ConFoo
Security 202 - Are you sure your site is secure?Security 202 - Are you sure your site is secure?
Security 202 - Are you sure your site is secure?
ConFoo2.5K views
Application Security around OWASP Top 10 by Sastry Tumuluri
Application Security around OWASP Top 10Application Security around OWASP Top 10
Application Security around OWASP Top 10
Sastry Tumuluri763 views
Questioning the status quo by Ivano Pagano
Questioning the status quoQuestioning the status quo
Questioning the status quo
Ivano Pagano2.2K views
Php Code Audits (PHP UK 2010) by Damien Seguy
Php Code Audits (PHP UK 2010)Php Code Audits (PHP UK 2010)
Php Code Audits (PHP UK 2010)
Damien Seguy3K views

More from James Titcumb

Living the Best Life on a Legacy Project (phpday 2022).pdf by
Living the Best Life on a Legacy Project (phpday 2022).pdfLiving the Best Life on a Legacy Project (phpday 2022).pdf
Living the Best Life on a Legacy Project (phpday 2022).pdfJames Titcumb
58 views66 slides
Tips for Tackling a Legacy Codebase (ScotlandPHP 2021) by
Tips for Tackling a Legacy Codebase (ScotlandPHP 2021)Tips for Tackling a Legacy Codebase (ScotlandPHP 2021)
Tips for Tackling a Legacy Codebase (ScotlandPHP 2021)James Titcumb
170 views66 slides
Climbing the Abstract Syntax Tree (Midwest PHP 2020) by
Climbing the Abstract Syntax Tree (Midwest PHP 2020)Climbing the Abstract Syntax Tree (Midwest PHP 2020)
Climbing the Abstract Syntax Tree (Midwest PHP 2020)James Titcumb
199 views125 slides
Best practices for crafting high quality PHP apps (Bulgaria 2019) by
Best practices for crafting high quality PHP apps (Bulgaria 2019)Best practices for crafting high quality PHP apps (Bulgaria 2019)
Best practices for crafting high quality PHP apps (Bulgaria 2019)James Titcumb
254 views122 slides
Climbing the Abstract Syntax Tree (php[world] 2019) by
Climbing the Abstract Syntax Tree (php[world] 2019)Climbing the Abstract Syntax Tree (php[world] 2019)
Climbing the Abstract Syntax Tree (php[world] 2019)James Titcumb
160 views126 slides
Best practices for crafting high quality PHP apps (php[world] 2019) by
Best practices for crafting high quality PHP apps (php[world] 2019)Best practices for crafting high quality PHP apps (php[world] 2019)
Best practices for crafting high quality PHP apps (php[world] 2019)James Titcumb
260 views125 slides

More from James Titcumb(20)

Living the Best Life on a Legacy Project (phpday 2022).pdf by James Titcumb
Living the Best Life on a Legacy Project (phpday 2022).pdfLiving the Best Life on a Legacy Project (phpday 2022).pdf
Living the Best Life on a Legacy Project (phpday 2022).pdf
James Titcumb58 views
Tips for Tackling a Legacy Codebase (ScotlandPHP 2021) by James Titcumb
Tips for Tackling a Legacy Codebase (ScotlandPHP 2021)Tips for Tackling a Legacy Codebase (ScotlandPHP 2021)
Tips for Tackling a Legacy Codebase (ScotlandPHP 2021)
James Titcumb170 views
Climbing the Abstract Syntax Tree (Midwest PHP 2020) by James Titcumb
Climbing the Abstract Syntax Tree (Midwest PHP 2020)Climbing the Abstract Syntax Tree (Midwest PHP 2020)
Climbing the Abstract Syntax Tree (Midwest PHP 2020)
James Titcumb199 views
Best practices for crafting high quality PHP apps (Bulgaria 2019) by James Titcumb
Best practices for crafting high quality PHP apps (Bulgaria 2019)Best practices for crafting high quality PHP apps (Bulgaria 2019)
Best practices for crafting high quality PHP apps (Bulgaria 2019)
James Titcumb254 views
Climbing the Abstract Syntax Tree (php[world] 2019) by James Titcumb
Climbing the Abstract Syntax Tree (php[world] 2019)Climbing the Abstract Syntax Tree (php[world] 2019)
Climbing the Abstract Syntax Tree (php[world] 2019)
James Titcumb160 views
Best practices for crafting high quality PHP apps (php[world] 2019) by James Titcumb
Best practices for crafting high quality PHP apps (php[world] 2019)Best practices for crafting high quality PHP apps (php[world] 2019)
Best practices for crafting high quality PHP apps (php[world] 2019)
James Titcumb260 views
Crafting Quality PHP Applications (PHP Joburg Oct 2019) by James Titcumb
Crafting Quality PHP Applications (PHP Joburg Oct 2019)Crafting Quality PHP Applications (PHP Joburg Oct 2019)
Crafting Quality PHP Applications (PHP Joburg Oct 2019)
James Titcumb263 views
Climbing the Abstract Syntax Tree (PHP Russia 2019) by James Titcumb
Climbing the Abstract Syntax Tree (PHP Russia 2019)Climbing the Abstract Syntax Tree (PHP Russia 2019)
Climbing the Abstract Syntax Tree (PHP Russia 2019)
James Titcumb195 views
Best practices for crafting high quality PHP apps - PHP UK 2019 by James Titcumb
Best practices for crafting high quality PHP apps - PHP UK 2019Best practices for crafting high quality PHP apps - PHP UK 2019
Best practices for crafting high quality PHP apps - PHP UK 2019
James Titcumb324 views
Climbing the Abstract Syntax Tree (ScotlandPHP 2018) by James Titcumb
Climbing the Abstract Syntax Tree (ScotlandPHP 2018)Climbing the Abstract Syntax Tree (ScotlandPHP 2018)
Climbing the Abstract Syntax Tree (ScotlandPHP 2018)
James Titcumb181 views
Best practices for crafting high quality PHP apps (ScotlandPHP 2018) by James Titcumb
Best practices for crafting high quality PHP apps (ScotlandPHP 2018)Best practices for crafting high quality PHP apps (ScotlandPHP 2018)
Best practices for crafting high quality PHP apps (ScotlandPHP 2018)
James Titcumb322 views
Kicking off with Zend Expressive and Doctrine ORM (PHP South Africa 2018) by James Titcumb
Kicking off with Zend Expressive and Doctrine ORM (PHP South Africa 2018)Kicking off with Zend Expressive and Doctrine ORM (PHP South Africa 2018)
Kicking off with Zend Expressive and Doctrine ORM (PHP South Africa 2018)
James Titcumb637 views
Best practices for crafting high quality PHP apps (PHP South Africa 2018) by James Titcumb
Best practices for crafting high quality PHP apps (PHP South Africa 2018)Best practices for crafting high quality PHP apps (PHP South Africa 2018)
Best practices for crafting high quality PHP apps (PHP South Africa 2018)
James Titcumb122 views
Climbing the Abstract Syntax Tree (PHP Developer Days Dresden 2018) by James Titcumb
Climbing the Abstract Syntax Tree (PHP Developer Days Dresden 2018)Climbing the Abstract Syntax Tree (PHP Developer Days Dresden 2018)
Climbing the Abstract Syntax Tree (PHP Developer Days Dresden 2018)
James Titcumb133 views
Climbing the Abstract Syntax Tree (Southeast PHP 2018) by James Titcumb
Climbing the Abstract Syntax Tree (Southeast PHP 2018)Climbing the Abstract Syntax Tree (Southeast PHP 2018)
Climbing the Abstract Syntax Tree (Southeast PHP 2018)
James Titcumb233 views
Crafting Quality PHP Applications (PHPkonf 2018) by James Titcumb
Crafting Quality PHP Applications (PHPkonf 2018)Crafting Quality PHP Applications (PHPkonf 2018)
Crafting Quality PHP Applications (PHPkonf 2018)
James Titcumb209 views
Best practices for crafting high quality PHP apps (PHP Yorkshire 2018) by James Titcumb
Best practices for crafting high quality PHP apps (PHP Yorkshire 2018)Best practices for crafting high quality PHP apps (PHP Yorkshire 2018)
Best practices for crafting high quality PHP apps (PHP Yorkshire 2018)
James Titcumb264 views
Crafting Quality PHP Applications: an overview (PHPSW March 2018) by James Titcumb
Crafting Quality PHP Applications: an overview (PHPSW March 2018)Crafting Quality PHP Applications: an overview (PHPSW March 2018)
Crafting Quality PHP Applications: an overview (PHPSW March 2018)
James Titcumb210 views
Kicking off with Zend Expressive and Doctrine ORM (PHP MiNDS March 2018) by James Titcumb
Kicking off with Zend Expressive and Doctrine ORM (PHP MiNDS March 2018)Kicking off with Zend Expressive and Doctrine ORM (PHP MiNDS March 2018)
Kicking off with Zend Expressive and Doctrine ORM (PHP MiNDS March 2018)
James Titcumb197 views
Climbing the Abstract Syntax Tree (PHP UK 2018) by James Titcumb
Climbing the Abstract Syntax Tree (PHP UK 2018)Climbing the Abstract Syntax Tree (PHP UK 2018)
Climbing the Abstract Syntax Tree (PHP UK 2018)
James Titcumb520 views

Recently uploaded

SAP Automation Using Bar Code and FIORI.pdf by
SAP Automation Using Bar Code and FIORI.pdfSAP Automation Using Bar Code and FIORI.pdf
SAP Automation Using Bar Code and FIORI.pdfVirendra Rai, PMP
23 views38 slides
ESPC 2023 - Protect and Govern your Sensitive Data with Microsoft Purview in ... by
ESPC 2023 - Protect and Govern your Sensitive Data with Microsoft Purview in ...ESPC 2023 - Protect and Govern your Sensitive Data with Microsoft Purview in ...
ESPC 2023 - Protect and Govern your Sensitive Data with Microsoft Purview in ...Jasper Oosterveld
19 views49 slides
Network Source of Truth and Infrastructure as Code revisited by
Network Source of Truth and Infrastructure as Code revisitedNetwork Source of Truth and Infrastructure as Code revisited
Network Source of Truth and Infrastructure as Code revisitedNetwork Automation Forum
27 views45 slides
Kyo - Functional Scala 2023.pdf by
Kyo - Functional Scala 2023.pdfKyo - Functional Scala 2023.pdf
Kyo - Functional Scala 2023.pdfFlavio W. Brasil
400 views92 slides
Igniting Next Level Productivity with AI-Infused Data Integration Workflows by
Igniting Next Level Productivity with AI-Infused Data Integration Workflows Igniting Next Level Productivity with AI-Infused Data Integration Workflows
Igniting Next Level Productivity with AI-Infused Data Integration Workflows Safe Software
280 views86 slides
Scaling Knowledge Graph Architectures with AI by
Scaling Knowledge Graph Architectures with AIScaling Knowledge Graph Architectures with AI
Scaling Knowledge Graph Architectures with AIEnterprise Knowledge
38 views15 slides

Recently uploaded(20)

SAP Automation Using Bar Code and FIORI.pdf by Virendra Rai, PMP
SAP Automation Using Bar Code and FIORI.pdfSAP Automation Using Bar Code and FIORI.pdf
SAP Automation Using Bar Code and FIORI.pdf
ESPC 2023 - Protect and Govern your Sensitive Data with Microsoft Purview in ... by Jasper Oosterveld
ESPC 2023 - Protect and Govern your Sensitive Data with Microsoft Purview in ...ESPC 2023 - Protect and Govern your Sensitive Data with Microsoft Purview in ...
ESPC 2023 - Protect and Govern your Sensitive Data with Microsoft Purview in ...
Igniting Next Level Productivity with AI-Infused Data Integration Workflows by Safe Software
Igniting Next Level Productivity with AI-Infused Data Integration Workflows Igniting Next Level Productivity with AI-Infused Data Integration Workflows
Igniting Next Level Productivity with AI-Infused Data Integration Workflows
Safe Software280 views
GDG Cloud Southlake 28 Brad Taylor and Shawn Augenstein Old Problems in the N... by James Anderson
GDG Cloud Southlake 28 Brad Taylor and Shawn Augenstein Old Problems in the N...GDG Cloud Southlake 28 Brad Taylor and Shawn Augenstein Old Problems in the N...
GDG Cloud Southlake 28 Brad Taylor and Shawn Augenstein Old Problems in the N...
James Anderson92 views
PharoJS - Zürich Smalltalk Group Meetup November 2023 by Noury Bouraqadi
PharoJS - Zürich Smalltalk Group Meetup November 2023PharoJS - Zürich Smalltalk Group Meetup November 2023
PharoJS - Zürich Smalltalk Group Meetup November 2023
Noury Bouraqadi132 views
Automating a World-Class Technology Conference; Behind the Scenes of CiscoLive by Network Automation Forum
Automating a World-Class Technology Conference; Behind the Scenes of CiscoLiveAutomating a World-Class Technology Conference; Behind the Scenes of CiscoLive
Automating a World-Class Technology Conference; Behind the Scenes of CiscoLive
Data Integrity for Banking and Financial Services by Precisely
Data Integrity for Banking and Financial ServicesData Integrity for Banking and Financial Services
Data Integrity for Banking and Financial Services
Precisely25 views
iSAQB Software Architecture Gathering 2023: How Process Orchestration Increas... by Bernd Ruecker
iSAQB Software Architecture Gathering 2023: How Process Orchestration Increas...iSAQB Software Architecture Gathering 2023: How Process Orchestration Increas...
iSAQB Software Architecture Gathering 2023: How Process Orchestration Increas...
Bernd Ruecker40 views
"Running students' code in isolation. The hard way", Yurii Holiuk by Fwdays
"Running students' code in isolation. The hard way", Yurii Holiuk "Running students' code in isolation. The hard way", Yurii Holiuk
"Running students' code in isolation. The hard way", Yurii Holiuk
Fwdays17 views
Business Analyst Series 2023 - Week 3 Session 5 by DianaGray10
Business Analyst Series 2023 -  Week 3 Session 5Business Analyst Series 2023 -  Week 3 Session 5
Business Analyst Series 2023 - Week 3 Session 5
DianaGray10300 views

Dip Your Toes in the Sea of Security (PHP Cambridge)