SlideShare a Scribd company logo
Lock down security exposures in your Domino web applications Rob Kirkland Certified Lotus Instructor Consultant Author of “Domino System Administration”
Agenda Authentication - 5 options ACL settings Securing views Securing forms and documents Vulnerability in Domino URLs Securing Agents Important server document fields
Authentication: Anonymous access No user authentication required Useful for commercial Web sites with information intended for public consumption Dangerous for restricted Web sites
Basic authentication:  Name and password access User submits name and password, which Domino compares to Person document in a Domino directory or to a record in an LDAP directory Easy to set up and administer. Just create Person and Group documents. Problem: Name and password cross network as  plain text  with  every URL  the user submits
Session authentication As with basic authentication, user submits name and password in plain text But only submits them once. User submits cookie after initial authentication With each reply, server sends user an updated cookie Maintains transaction state this way Supports single sign-on too One login recognized by multiple Domino and Websphere servers
Authentication: Server-side SSL Server submits certificate with public key to user If user trusts certifier, creates, sends a session key to server, encrypted with server’s public key All further transmissions of information between user and server are encrypted and validated (signed) with session key User can authenticate using any method
Server-side SSL (cont’d) Solves problem of user name and password crossing network in plain text.  Good! Increases demand on resources: processor, memory, I/O. Therefore, should use SSL only when necessary. (Set property in each database.) Relatively costly to set up and maintain.
Authentication: Client-side SSL User submits certificate with public key to server If server trusts certifier, compares user’s public key to that stored in Person document in Domino or LDAP directory. If public keys match, user is authenticated.
Client-side SSL (cont’d) This is the most secure user authentication because a hacker must steal user’s certificate (and know the password) in order to pose as user Costly and cumbersome to set up and maintain because user must obtain an X.509 certificate from some Certificate Authority and merge it into user’s browser. Can’t use with session authentication.  Bummer!
ACLs: Basics In general: Set ACLs to lowest possible levels Anonymous: No Access or Reader. Never Author. Registration DB: Set Anonymous to Depositor. Set -Default- or Anonymous entries in ACLs of all databases If there is no Anonymous entry, -Default- is used on the Web If Anonymous is set, -Default- is ignored on the Web Use -Default- for Notes clients, and Anonymous for Web browsers
ACLs: Privileges Create documents and Delete documents Don’t activate if not needed. Don’t get lazy! Create personal agents, Create folders/views, Create agents Available to Notes users only, not Web users Read/Write public documents Consider using to restrict access to selected database elements.
ACLs: Roles Use ACL roles to refine access to database elements. You can use roles with the following DB elements: Framesets Views Sections Outlines Forms Readers/Authors fields
ACLs: Considerations Set Maximum Internet Name and Password field (in Advanced) Create default ACL entries in design templates Use brackets, e.g.: [Anonymous] Create File Protection documents to set No Access, Read Only, Read/Write for elements in the Domino file system. Then create Realm documents to head off user frustration
Securing views Hide views from Web users Use Hide from Web browsers in Design Document Properties. Use parentheses to hide view names Hide views from specific users: Use Read Access lists Prevent Web users from guessing view names (by using hard-to-guess names!)
Securing views (cont’d) Use single-category views to limit what portions of a view Web users can see Embed view in a form or page Use a formula to define which category of items will display to the Web user
Securing views (cont’d) Block direct (manually entered URL) to views Use $$ViewTemplate for [viewname] and $$ViewTemplateDefault forms that have no embedded view or $$Viewname field. When user requests the view, Domino will deliver the form, not the view! And don’t forget to redirect $DefaultNav and ?ReadViewEntries URLs
Securing forms and documents Use form and document Read Access lists Use form Compose Access lists Use Authors fields Remember, an ACL author can only edit a document if his/her name appears in an Authors field on the document Use Readers fields Great security feature!
Securing forms and documents (cont’d) Use Form formulas in views Defines what form Domino will use to display documents in view But remember, users can open documents directly if they know a doc’s UNID Then the Form field controls, not the Form formula Use Controlled Access sections  To control edit access to items in section
Securing forms and document (cont’d) Use Hide-whens liberally Hides data from users but not from the server Especially, hide password fields from unauthorized users Don’t rely on field encryption It doesn’t restrict Web users from seeing contents of fields.
Lock out unauthorized  Domino URLs Web users who know Domino URL syntax can hack your Web site. Use redirection to thwart this Problem areas include: Certain special identifiers Certain URL commands
Domino URLs (cont’d) http://….nsf/$DefaultView Retrieves a database’s default view http://….nsf/$DefaultForm Retrieves a database’s default form How to thwart: Don’t designate a default form or view Or create a default view or form that displays a  warning message .
Domino URLs (cont’d) http://….nsf/$DefaultNav Retrieves a list of a database’s views How to thwart: Create a Redirection document in Domino Directory Incoming URL path: /*.nsf/$DefaultNav Redirect to hacker warning.
Domino URLs (cont’d) http://…/$SearchForm Retrieves default search form If DB is FT-indexed, user can search it How to thwart: Create a $$Search form or $$SearchTemplateDefault form with a warning or error message
Domino URLs (cont’d) $Help and $About These retrieve the Help and About documents. Use hide-whens to hide selected content from Web users, if necessary. Or don’t create these docs Or put warning messages on them.
Domino URLs (cont’d) http://…?OpenServer Lists all Notes databases in the server’s file system This may be okay for an intranet Web server, but is usually  not  okay for an Internet Web server. To block this command, disable in Server document. Set “Allow HTTP clients to browse databases” to “No”.
Domino URLs (cont’d) http://…?ReadViewEntries Retrieves view in XML format Permits user to export view contents to a database. How to thwart: Create a Redirection document in Domino Directory Incoming URL path: /*.nsf/*?ReadView*
Secure agents Agents can be invoked from a browser http://…/agentname?OpenAgent Browser-invoked agents run with the rights of the agent signer But invoker must have Reader access to the items on which the agent acts You can override this Set agent property “Run Agent as Web user” You can also hide the agent from Web users
Secure agents (cont’d) If a Web user invokes an agent directly (by entering its URL manually), the HTTP_Referer CGI variable returned with the URL will be blank Therefore, to prevent Web users invoking agents directly, test for a blank HTTP_Referer variable. See example code, next slide
Secure agents (cont’d) LotusScript Example to Check HTTP_Referer: If Not(Instr(1, Ucase(docContext.HTTP_Referer(0)), Ucase(docContext.Server_Name(0))) > 0) And Not(Instr(1,  Ucase(docContext.HTTP_Referer(0)), Ucase(docContext.HTTP_HOST(0))) > 0) Then Print{<HTML><HEAD><TITLE>Error</TITLE></HEAD><BODY>} Print {<H1>Error</H1>Unauthorized Exception<P><HR>} Print {</BODY></HTML>} Exit Sub End If Slide used courtesy of The View. Copyright 2000 The View. All rights reserved.
Some important server document fields Security tab Administer the server from a browser Agent and Java/COM restriction fields Ports, Internet Ports, Web tab Authentication options fields Internet Protocols tabs DNS lookup  Domino logs host name, not just IP address Allow HTTP clients to browse databases Web logging fields Enable one or none, not both
Thank you Any questions?
Ad

More Related Content

What's hot (20)

Web Fundamental
Web FundamentalWeb Fundamental
Web Fundamental
SiliconExpert Technologies
 
ASP
ASPASP
ASP
Ramasubbu .P
 
Bri forum advanced web interface customizations
Bri forum   advanced web interface customizationsBri forum   advanced web interface customizations
Bri forum advanced web interface customizations
CCOSTAN
 
ASP.NET Lecture 1
ASP.NET Lecture 1ASP.NET Lecture 1
ASP.NET Lecture 1
Julie Iskander
 
Advanced Web Interface Customizations - BriForum 2010
Advanced Web Interface Customizations - BriForum 2010Advanced Web Interface Customizations - BriForum 2010
Advanced Web Interface Customizations - BriForum 2010
shoesing
 
Introduction to asp.net
Introduction to asp.netIntroduction to asp.net
Introduction to asp.net
Melick Baranasooriya
 
Introduction to ASP.NET
Introduction to ASP.NETIntroduction to ASP.NET
Introduction to ASP.NET
Peter Gfader
 
HTML5 Local Storage
HTML5 Local StorageHTML5 Local Storage
HTML5 Local Storage
Lior Zamir
 
Ethical hacking Chapter 10 - Exploiting Web Servers - Eric Vanderburg
Ethical hacking   Chapter 10 - Exploiting Web Servers - Eric VanderburgEthical hacking   Chapter 10 - Exploiting Web Servers - Eric Vanderburg
Ethical hacking Chapter 10 - Exploiting Web Servers - Eric Vanderburg
Eric Vanderburg
 
Alfresco Tech Talk Live (Episode 70): Customizing Alfresco Share 4.2
Alfresco Tech Talk Live (Episode 70): Customizing Alfresco Share 4.2Alfresco Tech Talk Live (Episode 70): Customizing Alfresco Share 4.2
Alfresco Tech Talk Live (Episode 70): Customizing Alfresco Share 4.2
Richard Esplin
 
IBM Connect 2016 - Break out of the Box
IBM Connect 2016 - Break out of the BoxIBM Connect 2016 - Break out of the Box
IBM Connect 2016 - Break out of the Box
Karl-Henry Martinsson
 
WebApp / SPA @ AllFacebook Developer Conference
WebApp / SPA @ AllFacebook Developer ConferenceWebApp / SPA @ AllFacebook Developer Conference
WebApp / SPA @ AllFacebook Developer Conference
AllFacebook.de
 
Using Chrome Dev Tools
Using Chrome Dev ToolsUsing Chrome Dev Tools
Using Chrome Dev Tools
Micah Wood
 
Concepts of Asp.Net
Concepts of Asp.NetConcepts of Asp.Net
Concepts of Asp.Net
vidyamittal
 
1 app 2 developers 3 servers
1 app 2 developers 3 servers1 app 2 developers 3 servers
1 app 2 developers 3 servers
Mark Myers
 
Chrome DevTools
Chrome DevToolsChrome DevTools
Chrome DevTools
roadster43
 
Chrome Extension Develop Starts
Chrome Extension Develop StartsChrome Extension Develop Starts
Chrome Extension Develop Starts
taobao.com
 
WebApp #3 : API
WebApp #3 : APIWebApp #3 : API
WebApp #3 : API
Jean Michel
 
Asp.net
 Asp.net Asp.net
Asp.net
Dinesh kumar
 
Building Chrome Extensions
Building Chrome ExtensionsBuilding Chrome Extensions
Building Chrome Extensions
Ron Reiter
 
Bri forum advanced web interface customizations
Bri forum   advanced web interface customizationsBri forum   advanced web interface customizations
Bri forum advanced web interface customizations
CCOSTAN
 
Advanced Web Interface Customizations - BriForum 2010
Advanced Web Interface Customizations - BriForum 2010Advanced Web Interface Customizations - BriForum 2010
Advanced Web Interface Customizations - BriForum 2010
shoesing
 
Introduction to ASP.NET
Introduction to ASP.NETIntroduction to ASP.NET
Introduction to ASP.NET
Peter Gfader
 
HTML5 Local Storage
HTML5 Local StorageHTML5 Local Storage
HTML5 Local Storage
Lior Zamir
 
Ethical hacking Chapter 10 - Exploiting Web Servers - Eric Vanderburg
Ethical hacking   Chapter 10 - Exploiting Web Servers - Eric VanderburgEthical hacking   Chapter 10 - Exploiting Web Servers - Eric Vanderburg
Ethical hacking Chapter 10 - Exploiting Web Servers - Eric Vanderburg
Eric Vanderburg
 
Alfresco Tech Talk Live (Episode 70): Customizing Alfresco Share 4.2
Alfresco Tech Talk Live (Episode 70): Customizing Alfresco Share 4.2Alfresco Tech Talk Live (Episode 70): Customizing Alfresco Share 4.2
Alfresco Tech Talk Live (Episode 70): Customizing Alfresco Share 4.2
Richard Esplin
 
IBM Connect 2016 - Break out of the Box
IBM Connect 2016 - Break out of the BoxIBM Connect 2016 - Break out of the Box
IBM Connect 2016 - Break out of the Box
Karl-Henry Martinsson
 
WebApp / SPA @ AllFacebook Developer Conference
WebApp / SPA @ AllFacebook Developer ConferenceWebApp / SPA @ AllFacebook Developer Conference
WebApp / SPA @ AllFacebook Developer Conference
AllFacebook.de
 
Using Chrome Dev Tools
Using Chrome Dev ToolsUsing Chrome Dev Tools
Using Chrome Dev Tools
Micah Wood
 
Concepts of Asp.Net
Concepts of Asp.NetConcepts of Asp.Net
Concepts of Asp.Net
vidyamittal
 
1 app 2 developers 3 servers
1 app 2 developers 3 servers1 app 2 developers 3 servers
1 app 2 developers 3 servers
Mark Myers
 
Chrome DevTools
Chrome DevToolsChrome DevTools
Chrome DevTools
roadster43
 
Chrome Extension Develop Starts
Chrome Extension Develop StartsChrome Extension Develop Starts
Chrome Extension Develop Starts
taobao.com
 
Building Chrome Extensions
Building Chrome ExtensionsBuilding Chrome Extensions
Building Chrome Extensions
Ron Reiter
 

Similar to Domino security (20)

ASP.NET Lecture 5
ASP.NET Lecture 5ASP.NET Lecture 5
ASP.NET Lecture 5
Julie Iskander
 
"Running CF in a Shared Hosting Environment"
"Running CF in a Shared Hosting Environment""Running CF in a Shared Hosting Environment"
"Running CF in a Shared Hosting Environment"
webhostingguy
 
New Features Lotus Domino Administration 8.5
New Features Lotus Domino Administration 8.5New Features Lotus Domino Administration 8.5
New Features Lotus Domino Administration 8.5
Rolf Kremer
 
A Technical Guide To Deploying Single Sign On
A Technical Guide To Deploying Single Sign OnA Technical Guide To Deploying Single Sign On
A Technical Guide To Deploying Single Sign On
Gabriella Davis
 
Bh Win 03 Rileybollefer
Bh Win 03 RileybolleferBh Win 03 Rileybollefer
Bh Win 03 Rileybollefer
Timothy Bollefer
 
Why Browser Debugger is a Developer's Best Friend
Why Browser Debugger is a Developer's Best FriendWhy Browser Debugger is a Developer's Best Friend
Why Browser Debugger is a Developer's Best Friend
Odoo
 
Url manipulation
Url manipulationUrl manipulation
Url manipulation
Shivam Singh
 
331592291-HTML-and-Cascading style sheet
331592291-HTML-and-Cascading style sheet331592291-HTML-and-Cascading style sheet
331592291-HTML-and-Cascading style sheet
stephen972973
 
Azure Global Bootcamp 2017 Azure AD Deployment
Azure Global Bootcamp 2017 Azure AD DeploymentAzure Global Bootcamp 2017 Azure AD Deployment
Azure Global Bootcamp 2017 Azure AD Deployment
Anthony Clendenen
 
Web application attacks
Web application attacksWeb application attacks
Web application attacks
hruth
 
Squid
SquidSquid
Squid
Syeda Javeria
 
Web application security (eng)
Web application security (eng)Web application security (eng)
Web application security (eng)
Anatoliy Okhotnikov
 
Chapter03 Creating And Managing User Accounts
Chapter03      Creating And  Managing  User  AccountsChapter03      Creating And  Managing  User  Accounts
Chapter03 Creating And Managing User Accounts
Raja Waseem Akhtar
 
58615764 net-and-j2 ee-web-services
58615764 net-and-j2 ee-web-services58615764 net-and-j2 ee-web-services
58615764 net-and-j2 ee-web-services
homeworkping3
 
ID304 - Lotus® Connections 3.0 TDI, SSO, and User Life Cycle Management: What...
ID304 - Lotus® Connections 3.0 TDI, SSO, and User Life Cycle Management: What...ID304 - Lotus® Connections 3.0 TDI, SSO, and User Life Cycle Management: What...
ID304 - Lotus® Connections 3.0 TDI, SSO, and User Life Cycle Management: What...
Luis Benitez
 
Low Hanging Fruit, Making Your Basic MongoDB Installation More Secure
Low Hanging Fruit, Making Your Basic MongoDB Installation More SecureLow Hanging Fruit, Making Your Basic MongoDB Installation More Secure
Low Hanging Fruit, Making Your Basic MongoDB Installation More Secure
MongoDB
 
Secure Web Applications Ver0.01
Secure Web Applications Ver0.01Secure Web Applications Ver0.01
Secure Web Applications Ver0.01
Vasan Ramadoss
 
BP101 - 10 Things to Consider when Developing & Deploying Applications in Lar...
BP101 - 10 Things to Consider when Developing & Deploying Applications in Lar...BP101 - 10 Things to Consider when Developing & Deploying Applications in Lar...
BP101 - 10 Things to Consider when Developing & Deploying Applications in Lar...
Martijn de Jong
 
Taking OneDrive for Business administration to the next level
Taking OneDrive for Business administration to the next levelTaking OneDrive for Business administration to the next level
Taking OneDrive for Business administration to the next level
Drew Madelung
 
Is Drupal Secure?
Is Drupal Secure?Is Drupal Secure?
Is Drupal Secure?
David Timothy Strauss
 
"Running CF in a Shared Hosting Environment"
"Running CF in a Shared Hosting Environment""Running CF in a Shared Hosting Environment"
"Running CF in a Shared Hosting Environment"
webhostingguy
 
New Features Lotus Domino Administration 8.5
New Features Lotus Domino Administration 8.5New Features Lotus Domino Administration 8.5
New Features Lotus Domino Administration 8.5
Rolf Kremer
 
A Technical Guide To Deploying Single Sign On
A Technical Guide To Deploying Single Sign OnA Technical Guide To Deploying Single Sign On
A Technical Guide To Deploying Single Sign On
Gabriella Davis
 
Why Browser Debugger is a Developer's Best Friend
Why Browser Debugger is a Developer's Best FriendWhy Browser Debugger is a Developer's Best Friend
Why Browser Debugger is a Developer's Best Friend
Odoo
 
331592291-HTML-and-Cascading style sheet
331592291-HTML-and-Cascading style sheet331592291-HTML-and-Cascading style sheet
331592291-HTML-and-Cascading style sheet
stephen972973
 
Azure Global Bootcamp 2017 Azure AD Deployment
Azure Global Bootcamp 2017 Azure AD DeploymentAzure Global Bootcamp 2017 Azure AD Deployment
Azure Global Bootcamp 2017 Azure AD Deployment
Anthony Clendenen
 
Web application attacks
Web application attacksWeb application attacks
Web application attacks
hruth
 
Chapter03 Creating And Managing User Accounts
Chapter03      Creating And  Managing  User  AccountsChapter03      Creating And  Managing  User  Accounts
Chapter03 Creating And Managing User Accounts
Raja Waseem Akhtar
 
58615764 net-and-j2 ee-web-services
58615764 net-and-j2 ee-web-services58615764 net-and-j2 ee-web-services
58615764 net-and-j2 ee-web-services
homeworkping3
 
ID304 - Lotus® Connections 3.0 TDI, SSO, and User Life Cycle Management: What...
ID304 - Lotus® Connections 3.0 TDI, SSO, and User Life Cycle Management: What...ID304 - Lotus® Connections 3.0 TDI, SSO, and User Life Cycle Management: What...
ID304 - Lotus® Connections 3.0 TDI, SSO, and User Life Cycle Management: What...
Luis Benitez
 
Low Hanging Fruit, Making Your Basic MongoDB Installation More Secure
Low Hanging Fruit, Making Your Basic MongoDB Installation More SecureLow Hanging Fruit, Making Your Basic MongoDB Installation More Secure
Low Hanging Fruit, Making Your Basic MongoDB Installation More Secure
MongoDB
 
Secure Web Applications Ver0.01
Secure Web Applications Ver0.01Secure Web Applications Ver0.01
Secure Web Applications Ver0.01
Vasan Ramadoss
 
BP101 - 10 Things to Consider when Developing & Deploying Applications in Lar...
BP101 - 10 Things to Consider when Developing & Deploying Applications in Lar...BP101 - 10 Things to Consider when Developing & Deploying Applications in Lar...
BP101 - 10 Things to Consider when Developing & Deploying Applications in Lar...
Martijn de Jong
 
Taking OneDrive for Business administration to the next level
Taking OneDrive for Business administration to the next levelTaking OneDrive for Business administration to the next level
Taking OneDrive for Business administration to the next level
Drew Madelung
 
Ad

More from dominion (20)

What is a itil and how does it relate to your collaborative environment uklug
What is a itil and how does it relate to your collaborative environment   uklugWhat is a itil and how does it relate to your collaborative environment   uklug
What is a itil and how does it relate to your collaborative environment uklug
dominion
 
iOS enterprise
iOS enterpriseiOS enterprise
iOS enterprise
dominion
 
cloud session uklug
cloud session uklugcloud session uklug
cloud session uklug
dominion
 
Uklug 2011 administrator development synergy
Uklug 2011 administrator development synergyUklug 2011 administrator development synergy
Uklug 2011 administrator development synergy
dominion
 
Uklug 2011 client management
Uklug 2011 client managementUklug 2011 client management
Uklug 2011 client management
dominion
 
JavaScript blast
JavaScript blastJavaScript blast
JavaScript blast
dominion
 
Populating your domino directory or any domino database with tivoli directory...
Populating your domino directory or any domino database with tivoli directory...Populating your domino directory or any domino database with tivoli directory...
Populating your domino directory or any domino database with tivoli directory...
dominion
 
Uklug2011 Know your Notes
Uklug2011 Know your NotesUklug2011 Know your Notes
Uklug2011 Know your Notes
dominion
 
Quickr
QuickrQuickr
Quickr
dominion
 
Taking themes to the next level
Taking themes to the next levelTaking themes to the next level
Taking themes to the next level
dominion
 
Supersize me
Supersize meSupersize me
Supersize me
dominion
 
Aussie outback
Aussie outbackAussie outback
Aussie outback
dominion
 
Learning to run
Learning to runLearning to run
Learning to run
dominion
 
Implementing xpages extension library
Implementing xpages extension libraryImplementing xpages extension library
Implementing xpages extension library
dominion
 
Abb presentation uklug
Abb presentation uklugAbb presentation uklug
Abb presentation uklug
dominion
 
Uklug2011.lotus.on.linux.report.technical.edition.v1.0
Uklug2011.lotus.on.linux.report.technical.edition.v1.0Uklug2011.lotus.on.linux.report.technical.edition.v1.0
Uklug2011.lotus.on.linux.report.technical.edition.v1.0
dominion
 
Composite applications tutorial
Composite applications tutorialComposite applications tutorial
Composite applications tutorial
dominion
 
Maximizing application performance
Maximizing application performanceMaximizing application performance
Maximizing application performance
dominion
 
Error handling in XPages
Error handling in XPagesError handling in XPages
Error handling in XPages
dominion
 
wcm domino
wcm dominowcm domino
wcm domino
dominion
 
What is a itil and how does it relate to your collaborative environment uklug
What is a itil and how does it relate to your collaborative environment   uklugWhat is a itil and how does it relate to your collaborative environment   uklug
What is a itil and how does it relate to your collaborative environment uklug
dominion
 
iOS enterprise
iOS enterpriseiOS enterprise
iOS enterprise
dominion
 
cloud session uklug
cloud session uklugcloud session uklug
cloud session uklug
dominion
 
Uklug 2011 administrator development synergy
Uklug 2011 administrator development synergyUklug 2011 administrator development synergy
Uklug 2011 administrator development synergy
dominion
 
Uklug 2011 client management
Uklug 2011 client managementUklug 2011 client management
Uklug 2011 client management
dominion
 
JavaScript blast
JavaScript blastJavaScript blast
JavaScript blast
dominion
 
Populating your domino directory or any domino database with tivoli directory...
Populating your domino directory or any domino database with tivoli directory...Populating your domino directory or any domino database with tivoli directory...
Populating your domino directory or any domino database with tivoli directory...
dominion
 
Uklug2011 Know your Notes
Uklug2011 Know your NotesUklug2011 Know your Notes
Uklug2011 Know your Notes
dominion
 
Taking themes to the next level
Taking themes to the next levelTaking themes to the next level
Taking themes to the next level
dominion
 
Supersize me
Supersize meSupersize me
Supersize me
dominion
 
Aussie outback
Aussie outbackAussie outback
Aussie outback
dominion
 
Learning to run
Learning to runLearning to run
Learning to run
dominion
 
Implementing xpages extension library
Implementing xpages extension libraryImplementing xpages extension library
Implementing xpages extension library
dominion
 
Abb presentation uklug
Abb presentation uklugAbb presentation uklug
Abb presentation uklug
dominion
 
Uklug2011.lotus.on.linux.report.technical.edition.v1.0
Uklug2011.lotus.on.linux.report.technical.edition.v1.0Uklug2011.lotus.on.linux.report.technical.edition.v1.0
Uklug2011.lotus.on.linux.report.technical.edition.v1.0
dominion
 
Composite applications tutorial
Composite applications tutorialComposite applications tutorial
Composite applications tutorial
dominion
 
Maximizing application performance
Maximizing application performanceMaximizing application performance
Maximizing application performance
dominion
 
Error handling in XPages
Error handling in XPagesError handling in XPages
Error handling in XPages
dominion
 
wcm domino
wcm dominowcm domino
wcm domino
dominion
 
Ad

Recently uploaded (20)

Generative Artificial Intelligence (GenAI) in Business
Generative Artificial Intelligence (GenAI) in BusinessGenerative Artificial Intelligence (GenAI) in Business
Generative Artificial Intelligence (GenAI) in Business
Dr. Tathagat Varma
 
SAP Modernization: Maximizing the Value of Your SAP S/4HANA Migration.pdf
SAP Modernization: Maximizing the Value of Your SAP S/4HANA Migration.pdfSAP Modernization: Maximizing the Value of Your SAP S/4HANA Migration.pdf
SAP Modernization: Maximizing the Value of Your SAP S/4HANA Migration.pdf
Precisely
 
Role of Data Annotation Services in AI-Powered Manufacturing
Role of Data Annotation Services in AI-Powered ManufacturingRole of Data Annotation Services in AI-Powered Manufacturing
Role of Data Annotation Services in AI-Powered Manufacturing
Andrew Leo
 
Build Your Own Copilot & Agents For Devs
Build Your Own Copilot & Agents For DevsBuild Your Own Copilot & Agents For Devs
Build Your Own Copilot & Agents For Devs
Brian McKeiver
 
Noah Loul Shares 5 Steps to Implement AI Agents for Maximum Business Efficien...
Noah Loul Shares 5 Steps to Implement AI Agents for Maximum Business Efficien...Noah Loul Shares 5 Steps to Implement AI Agents for Maximum Business Efficien...
Noah Loul Shares 5 Steps to Implement AI Agents for Maximum Business Efficien...
Noah Loul
 
Into The Box Conference Keynote Day 1 (ITB2025)
Into The Box Conference Keynote Day 1 (ITB2025)Into The Box Conference Keynote Day 1 (ITB2025)
Into The Box Conference Keynote Day 1 (ITB2025)
Ortus Solutions, Corp
 
Linux Support for SMARC: How Toradex Empowers Embedded Developers
Linux Support for SMARC: How Toradex Empowers Embedded DevelopersLinux Support for SMARC: How Toradex Empowers Embedded Developers
Linux Support for SMARC: How Toradex Empowers Embedded Developers
Toradex
 
How analogue intelligence complements AI
How analogue intelligence complements AIHow analogue intelligence complements AI
How analogue intelligence complements AI
Paul Rowe
 
HCL Nomad Web – Best Practices and Managing Multiuser Environments
HCL Nomad Web – Best Practices and Managing Multiuser EnvironmentsHCL Nomad Web – Best Practices and Managing Multiuser Environments
HCL Nomad Web – Best Practices and Managing Multiuser Environments
panagenda
 
Cybersecurity Identity and Access Solutions using Azure AD
Cybersecurity Identity and Access Solutions using Azure ADCybersecurity Identity and Access Solutions using Azure AD
Cybersecurity Identity and Access Solutions using Azure AD
VICTOR MAESTRE RAMIREZ
 
#StandardsGoals for 2025: Standards & certification roundup - Tech Forum 2025
#StandardsGoals for 2025: Standards & certification roundup - Tech Forum 2025#StandardsGoals for 2025: Standards & certification roundup - Tech Forum 2025
#StandardsGoals for 2025: Standards & certification roundup - Tech Forum 2025
BookNet Canada
 
Dev Dives: Automate and orchestrate your processes with UiPath Maestro
Dev Dives: Automate and orchestrate your processes with UiPath MaestroDev Dives: Automate and orchestrate your processes with UiPath Maestro
Dev Dives: Automate and orchestrate your processes with UiPath Maestro
UiPathCommunity
 
How Can I use the AI Hype in my Business Context?
How Can I use the AI Hype in my Business Context?How Can I use the AI Hype in my Business Context?
How Can I use the AI Hype in my Business Context?
Daniel Lehner
 
Transcript: #StandardsGoals for 2025: Standards & certification roundup - Tec...
Transcript: #StandardsGoals for 2025: Standards & certification roundup - Tec...Transcript: #StandardsGoals for 2025: Standards & certification roundup - Tec...
Transcript: #StandardsGoals for 2025: Standards & certification roundup - Tec...
BookNet Canada
 
AI and Data Privacy in 2025: Global Trends
AI and Data Privacy in 2025: Global TrendsAI and Data Privacy in 2025: Global Trends
AI and Data Privacy in 2025: Global Trends
InData Labs
 
Drupalcamp Finland – Measuring Front-end Energy Consumption
Drupalcamp Finland – Measuring Front-end Energy ConsumptionDrupalcamp Finland – Measuring Front-end Energy Consumption
Drupalcamp Finland – Measuring Front-end Energy Consumption
Exove
 
Manifest Pre-Seed Update | A Humanoid OEM Deeptech In France
Manifest Pre-Seed Update | A Humanoid OEM Deeptech In FranceManifest Pre-Seed Update | A Humanoid OEM Deeptech In France
Manifest Pre-Seed Update | A Humanoid OEM Deeptech In France
chb3
 
Rusty Waters: Elevating Lakehouses Beyond Spark
Rusty Waters: Elevating Lakehouses Beyond SparkRusty Waters: Elevating Lakehouses Beyond Spark
Rusty Waters: Elevating Lakehouses Beyond Spark
carlyakerly1
 
Andrew Marnell: Transforming Business Strategy Through Data-Driven Insights
Andrew Marnell: Transforming Business Strategy Through Data-Driven InsightsAndrew Marnell: Transforming Business Strategy Through Data-Driven Insights
Andrew Marnell: Transforming Business Strategy Through Data-Driven Insights
Andrew Marnell
 
Big Data Analytics Quick Research Guide by Arthur Morgan
Big Data Analytics Quick Research Guide by Arthur MorganBig Data Analytics Quick Research Guide by Arthur Morgan
Big Data Analytics Quick Research Guide by Arthur Morgan
Arthur Morgan
 
Generative Artificial Intelligence (GenAI) in Business
Generative Artificial Intelligence (GenAI) in BusinessGenerative Artificial Intelligence (GenAI) in Business
Generative Artificial Intelligence (GenAI) in Business
Dr. Tathagat Varma
 
SAP Modernization: Maximizing the Value of Your SAP S/4HANA Migration.pdf
SAP Modernization: Maximizing the Value of Your SAP S/4HANA Migration.pdfSAP Modernization: Maximizing the Value of Your SAP S/4HANA Migration.pdf
SAP Modernization: Maximizing the Value of Your SAP S/4HANA Migration.pdf
Precisely
 
Role of Data Annotation Services in AI-Powered Manufacturing
Role of Data Annotation Services in AI-Powered ManufacturingRole of Data Annotation Services in AI-Powered Manufacturing
Role of Data Annotation Services in AI-Powered Manufacturing
Andrew Leo
 
Build Your Own Copilot & Agents For Devs
Build Your Own Copilot & Agents For DevsBuild Your Own Copilot & Agents For Devs
Build Your Own Copilot & Agents For Devs
Brian McKeiver
 
Noah Loul Shares 5 Steps to Implement AI Agents for Maximum Business Efficien...
Noah Loul Shares 5 Steps to Implement AI Agents for Maximum Business Efficien...Noah Loul Shares 5 Steps to Implement AI Agents for Maximum Business Efficien...
Noah Loul Shares 5 Steps to Implement AI Agents for Maximum Business Efficien...
Noah Loul
 
Into The Box Conference Keynote Day 1 (ITB2025)
Into The Box Conference Keynote Day 1 (ITB2025)Into The Box Conference Keynote Day 1 (ITB2025)
Into The Box Conference Keynote Day 1 (ITB2025)
Ortus Solutions, Corp
 
Linux Support for SMARC: How Toradex Empowers Embedded Developers
Linux Support for SMARC: How Toradex Empowers Embedded DevelopersLinux Support for SMARC: How Toradex Empowers Embedded Developers
Linux Support for SMARC: How Toradex Empowers Embedded Developers
Toradex
 
How analogue intelligence complements AI
How analogue intelligence complements AIHow analogue intelligence complements AI
How analogue intelligence complements AI
Paul Rowe
 
HCL Nomad Web – Best Practices and Managing Multiuser Environments
HCL Nomad Web – Best Practices and Managing Multiuser EnvironmentsHCL Nomad Web – Best Practices and Managing Multiuser Environments
HCL Nomad Web – Best Practices and Managing Multiuser Environments
panagenda
 
Cybersecurity Identity and Access Solutions using Azure AD
Cybersecurity Identity and Access Solutions using Azure ADCybersecurity Identity and Access Solutions using Azure AD
Cybersecurity Identity and Access Solutions using Azure AD
VICTOR MAESTRE RAMIREZ
 
#StandardsGoals for 2025: Standards & certification roundup - Tech Forum 2025
#StandardsGoals for 2025: Standards & certification roundup - Tech Forum 2025#StandardsGoals for 2025: Standards & certification roundup - Tech Forum 2025
#StandardsGoals for 2025: Standards & certification roundup - Tech Forum 2025
BookNet Canada
 
Dev Dives: Automate and orchestrate your processes with UiPath Maestro
Dev Dives: Automate and orchestrate your processes with UiPath MaestroDev Dives: Automate and orchestrate your processes with UiPath Maestro
Dev Dives: Automate and orchestrate your processes with UiPath Maestro
UiPathCommunity
 
How Can I use the AI Hype in my Business Context?
How Can I use the AI Hype in my Business Context?How Can I use the AI Hype in my Business Context?
How Can I use the AI Hype in my Business Context?
Daniel Lehner
 
Transcript: #StandardsGoals for 2025: Standards & certification roundup - Tec...
Transcript: #StandardsGoals for 2025: Standards & certification roundup - Tec...Transcript: #StandardsGoals for 2025: Standards & certification roundup - Tec...
Transcript: #StandardsGoals for 2025: Standards & certification roundup - Tec...
BookNet Canada
 
AI and Data Privacy in 2025: Global Trends
AI and Data Privacy in 2025: Global TrendsAI and Data Privacy in 2025: Global Trends
AI and Data Privacy in 2025: Global Trends
InData Labs
 
Drupalcamp Finland – Measuring Front-end Energy Consumption
Drupalcamp Finland – Measuring Front-end Energy ConsumptionDrupalcamp Finland – Measuring Front-end Energy Consumption
Drupalcamp Finland – Measuring Front-end Energy Consumption
Exove
 
Manifest Pre-Seed Update | A Humanoid OEM Deeptech In France
Manifest Pre-Seed Update | A Humanoid OEM Deeptech In FranceManifest Pre-Seed Update | A Humanoid OEM Deeptech In France
Manifest Pre-Seed Update | A Humanoid OEM Deeptech In France
chb3
 
Rusty Waters: Elevating Lakehouses Beyond Spark
Rusty Waters: Elevating Lakehouses Beyond SparkRusty Waters: Elevating Lakehouses Beyond Spark
Rusty Waters: Elevating Lakehouses Beyond Spark
carlyakerly1
 
Andrew Marnell: Transforming Business Strategy Through Data-Driven Insights
Andrew Marnell: Transforming Business Strategy Through Data-Driven InsightsAndrew Marnell: Transforming Business Strategy Through Data-Driven Insights
Andrew Marnell: Transforming Business Strategy Through Data-Driven Insights
Andrew Marnell
 
Big Data Analytics Quick Research Guide by Arthur Morgan
Big Data Analytics Quick Research Guide by Arthur MorganBig Data Analytics Quick Research Guide by Arthur Morgan
Big Data Analytics Quick Research Guide by Arthur Morgan
Arthur Morgan
 

Domino security

  • 1. Lock down security exposures in your Domino web applications Rob Kirkland Certified Lotus Instructor Consultant Author of “Domino System Administration”
  • 2. Agenda Authentication - 5 options ACL settings Securing views Securing forms and documents Vulnerability in Domino URLs Securing Agents Important server document fields
  • 3. Authentication: Anonymous access No user authentication required Useful for commercial Web sites with information intended for public consumption Dangerous for restricted Web sites
  • 4. Basic authentication: Name and password access User submits name and password, which Domino compares to Person document in a Domino directory or to a record in an LDAP directory Easy to set up and administer. Just create Person and Group documents. Problem: Name and password cross network as plain text with every URL the user submits
  • 5. Session authentication As with basic authentication, user submits name and password in plain text But only submits them once. User submits cookie after initial authentication With each reply, server sends user an updated cookie Maintains transaction state this way Supports single sign-on too One login recognized by multiple Domino and Websphere servers
  • 6. Authentication: Server-side SSL Server submits certificate with public key to user If user trusts certifier, creates, sends a session key to server, encrypted with server’s public key All further transmissions of information between user and server are encrypted and validated (signed) with session key User can authenticate using any method
  • 7. Server-side SSL (cont’d) Solves problem of user name and password crossing network in plain text. Good! Increases demand on resources: processor, memory, I/O. Therefore, should use SSL only when necessary. (Set property in each database.) Relatively costly to set up and maintain.
  • 8. Authentication: Client-side SSL User submits certificate with public key to server If server trusts certifier, compares user’s public key to that stored in Person document in Domino or LDAP directory. If public keys match, user is authenticated.
  • 9. Client-side SSL (cont’d) This is the most secure user authentication because a hacker must steal user’s certificate (and know the password) in order to pose as user Costly and cumbersome to set up and maintain because user must obtain an X.509 certificate from some Certificate Authority and merge it into user’s browser. Can’t use with session authentication. Bummer!
  • 10. ACLs: Basics In general: Set ACLs to lowest possible levels Anonymous: No Access or Reader. Never Author. Registration DB: Set Anonymous to Depositor. Set -Default- or Anonymous entries in ACLs of all databases If there is no Anonymous entry, -Default- is used on the Web If Anonymous is set, -Default- is ignored on the Web Use -Default- for Notes clients, and Anonymous for Web browsers
  • 11. ACLs: Privileges Create documents and Delete documents Don’t activate if not needed. Don’t get lazy! Create personal agents, Create folders/views, Create agents Available to Notes users only, not Web users Read/Write public documents Consider using to restrict access to selected database elements.
  • 12. ACLs: Roles Use ACL roles to refine access to database elements. You can use roles with the following DB elements: Framesets Views Sections Outlines Forms Readers/Authors fields
  • 13. ACLs: Considerations Set Maximum Internet Name and Password field (in Advanced) Create default ACL entries in design templates Use brackets, e.g.: [Anonymous] Create File Protection documents to set No Access, Read Only, Read/Write for elements in the Domino file system. Then create Realm documents to head off user frustration
  • 14. Securing views Hide views from Web users Use Hide from Web browsers in Design Document Properties. Use parentheses to hide view names Hide views from specific users: Use Read Access lists Prevent Web users from guessing view names (by using hard-to-guess names!)
  • 15. Securing views (cont’d) Use single-category views to limit what portions of a view Web users can see Embed view in a form or page Use a formula to define which category of items will display to the Web user
  • 16. Securing views (cont’d) Block direct (manually entered URL) to views Use $$ViewTemplate for [viewname] and $$ViewTemplateDefault forms that have no embedded view or $$Viewname field. When user requests the view, Domino will deliver the form, not the view! And don’t forget to redirect $DefaultNav and ?ReadViewEntries URLs
  • 17. Securing forms and documents Use form and document Read Access lists Use form Compose Access lists Use Authors fields Remember, an ACL author can only edit a document if his/her name appears in an Authors field on the document Use Readers fields Great security feature!
  • 18. Securing forms and documents (cont’d) Use Form formulas in views Defines what form Domino will use to display documents in view But remember, users can open documents directly if they know a doc’s UNID Then the Form field controls, not the Form formula Use Controlled Access sections To control edit access to items in section
  • 19. Securing forms and document (cont’d) Use Hide-whens liberally Hides data from users but not from the server Especially, hide password fields from unauthorized users Don’t rely on field encryption It doesn’t restrict Web users from seeing contents of fields.
  • 20. Lock out unauthorized Domino URLs Web users who know Domino URL syntax can hack your Web site. Use redirection to thwart this Problem areas include: Certain special identifiers Certain URL commands
  • 21. Domino URLs (cont’d) http://….nsf/$DefaultView Retrieves a database’s default view http://….nsf/$DefaultForm Retrieves a database’s default form How to thwart: Don’t designate a default form or view Or create a default view or form that displays a warning message .
  • 22. Domino URLs (cont’d) http://….nsf/$DefaultNav Retrieves a list of a database’s views How to thwart: Create a Redirection document in Domino Directory Incoming URL path: /*.nsf/$DefaultNav Redirect to hacker warning.
  • 23. Domino URLs (cont’d) http://…/$SearchForm Retrieves default search form If DB is FT-indexed, user can search it How to thwart: Create a $$Search form or $$SearchTemplateDefault form with a warning or error message
  • 24. Domino URLs (cont’d) $Help and $About These retrieve the Help and About documents. Use hide-whens to hide selected content from Web users, if necessary. Or don’t create these docs Or put warning messages on them.
  • 25. Domino URLs (cont’d) http://…?OpenServer Lists all Notes databases in the server’s file system This may be okay for an intranet Web server, but is usually not okay for an Internet Web server. To block this command, disable in Server document. Set “Allow HTTP clients to browse databases” to “No”.
  • 26. Domino URLs (cont’d) http://…?ReadViewEntries Retrieves view in XML format Permits user to export view contents to a database. How to thwart: Create a Redirection document in Domino Directory Incoming URL path: /*.nsf/*?ReadView*
  • 27. Secure agents Agents can be invoked from a browser http://…/agentname?OpenAgent Browser-invoked agents run with the rights of the agent signer But invoker must have Reader access to the items on which the agent acts You can override this Set agent property “Run Agent as Web user” You can also hide the agent from Web users
  • 28. Secure agents (cont’d) If a Web user invokes an agent directly (by entering its URL manually), the HTTP_Referer CGI variable returned with the URL will be blank Therefore, to prevent Web users invoking agents directly, test for a blank HTTP_Referer variable. See example code, next slide
  • 29. Secure agents (cont’d) LotusScript Example to Check HTTP_Referer: If Not(Instr(1, Ucase(docContext.HTTP_Referer(0)), Ucase(docContext.Server_Name(0))) > 0) And Not(Instr(1, Ucase(docContext.HTTP_Referer(0)), Ucase(docContext.HTTP_HOST(0))) > 0) Then Print{<HTML><HEAD><TITLE>Error</TITLE></HEAD><BODY>} Print {<H1>Error</H1>Unauthorized Exception<P><HR>} Print {</BODY></HTML>} Exit Sub End If Slide used courtesy of The View. Copyright 2000 The View. All rights reserved.
  • 30. Some important server document fields Security tab Administer the server from a browser Agent and Java/COM restriction fields Ports, Internet Ports, Web tab Authentication options fields Internet Protocols tabs DNS lookup Domino logs host name, not just IP address Allow HTTP clients to browse databases Web logging fields Enable one or none, not both
  • 31. Thank you Any questions?