Introducing
Your new presentation assistant.
Refine, enhance, and tailor your content, source relevant images, and edit visuals quicker than ever before.
Trending searches
#APEX5
5 Security & 5 Performance
Techniques for APEX projects
www.packtpub.com/content/oracle-apex-techniques/video
9,192, 631,770 times
http://hyperphysics.phy-astr.gsu.edu/hbase/acloc.html
https://apex.oracle.com/pls/apex/f?p=73000
* 50 = 1.5s
http://www.grassroots-oracle.com/2013/05/performance-of-apex-conditions.html
#APEX5
'After Authentication'
"The first time your authenticated session is used for an application"
Menu App
App Alias : LOGIN
User interface -> Login URL
f?p=LOGIN
http://www.grassroots-oracle.com/2014/04/shared-authentication-across-multiple-apex-apps.html
CRM
Bookings
on new instance
imitates post-authentication
(<= 4.2)
#APEX5
http://roelhartman.blogspot.nl/2014/08/apex-5-new-column-link-features.html
#APEX5
details to come with release of documentation?
upgrade from 3.2
encapsulate pl/sql
declarative conditions
+ links
+ buttons
+ items
+ regions
+ columns
+ rows
+ pages
+ processes
+ dynamic actions
consider materialised view
especially if using apex_ views
and is rendered on every page
consider security clause
exists (app/page/role)
http://www.grassroots-oracle.com/2013/05/css-pull-down-menu-using-apex-list.html
Extremely flexible
For every Dynamic Action
that has a notification event
means rendering the same thing many times
One render of plug-in, used many times
p_code => 'ONE'' OR ''1''=''1'
doesn't need to be malicious to break your application
Access pages not allowed
writing dynamic sql
Access data not allowed
#id vs .class -> comparable to indexes
sql using 'Standard Report Column'
http://www.artzstudio.com/2009/04/jquery-performance-rules/
l_sql := 'SELECT description FROM open_tab WHERE code = ' ||
SYS.DBMS_ASSERT.ENQUOTE_LITERAL(p_code);
apex_item.text(2,ename)
https://apex.oracle.com/pls/apex/f?p=73000:6:25081683920960::NO::P6_EMPNO:3
or HTML Expression
<span title="#TOOLTIP#">#ITEM#</span>
Binary vs Sprite vs Data URI
literals in JavaScript
jsPerf.com
http://www.dotnetcurry.com/showarticle.aspx?ID=986
alert("You entered &P1_TEXT!JS");
http://stackoverflow.com/questions/648004/what-is-fastest-children-or-find-in-jquery
#APEX5
http://roelhartman.blogspot.nl/2014/09/apex-5-new-substitution-syntax-features.html
SQL Reports - build more into HTML to save AJAX
Redirect if not allowed
http://news.softpedia.com/news/Citigroup-Hackers-Used-URL-Manipulation-to-Extract-Data-206356.shtml
Go declarative
Encapsulate
Pre-calculate
Re-use
Client CPU
DDoS
Buffer Overflow
XSS Attack
SQL Injection
Dynamic PL/SQL Regions
Plug-ins
AJAX Callbacks
Computations
Page Processes
Dynamic Actions
Any condition -> whatever you want
'On Load: Before Header'
ugh
sys.htp.script
('alert("You entered"+'
||apex_escape.js_literal(l_string) || ');'
);
-> Error page
Authorisation Scheme
#APEX5
On New Instance (New Session)
:APP_USER = 'nobody'
Initialise Roles
One entry point
Customise UI
Hacking for dummies
Sanitise everything
http://www.ebaytechblog.com/2011/07/12/data-uri-sprites/#.VC1I1WCSzCJ
http://www.skylinetechnologies.com/Blog/Article/2474/CSS-Images-Sprites-vs-Data-URIs.aspx
http://www.mobify.com/blog/css-sprites-vs-data-uris-which-is-faster-on-mobile/
Post-Authentication
:APP_USER = 'SWESLEY'
http://threatpost.com/paypal-site-vulnerable-to-xss-attack/100787
http://www.scmagazine.com/ebay-subdomains-vulnerable-to-xss-attacks-researchers-find/article/348687/
cross-site scripting
http://www.theguardian.com/technology/2014/jun/11/twitter-tweetdeck-xss-flaw-users-vulnerable
https://twitter.com/MattRosoff/status/476766506525945856
http://b.fl7.de/2014/09/amazon-stored-xss-book-metadata.html
Can impact jQuery
- updating protected items
http://jeffkemponoracle.com/2014/10/09/submit-from-jquery-modal-causing-session-state-protection-violation/
#APEX5
:APP_COMPONENT_TYPE
:APP_COMPONENT_ID
:APP_COMPONENT_NAME
http://roelhartman.blogspot.nl/2014/09/apex-5-new-authorization-evaluation.html
Declarative but mutually exclusive
Developer
DBA
{Not Developer}
{Not DBA}
(primed in Post Authentication)
PL/SQL Expression on Application Items
'Y' IN (:F_IS_DEVELOPER, :F_IS_DBA)
Populate Collection
EXISTS
(select null
from apex_collections
where collection_name = 'AUTH_SCHEMES'
and c001 = 'ROLE_DEVELOPER')
unlikely what you're looking for
... but we all try at least once
nobugsonlyfeatures
*********************************************
to Authentication Scheme
apex_util.public_check_authorisation
('developer_scheme')
to User Groups
apex_util.current_user_in_group
('dba_group')
probably what you're after
-- Populate custom authorisation (application items, collection)