Secure Website Development
Website security requires attentiveness in all aspects of website design and usage.
Web Standards and Best Practices
Iowa State University units are responsible for creating standards-compliant websites and applications. To comply with web standards, websites and applications must have:
- Valid HTML, CSS, and JavaScript
- Meet accessibility standards
- Valid RSS, metadata, XML, SVG, device APIs, and object and script embedding*
- Proper settings for character encoding*
- Web pages should also be optimized for size and download speed.
* required for full compliance
Risk Assessment
All development should take place in a secure environment in compliance with Iowa State IT policy and industry best practices. Development will require a thorough security component during its design phase, in development and implementation, and into maintenance. If an application is determined to be of risk to mission critical data, e-mail the IT Security team during the planning phase.
Browser and Session Management
- Use strong Cipher suites (e.g., TLS 1.2 or higher cipher required)
Note: Encryption adds overhead, so use it where needed - Use Themes provided by WebDev
- Follow Title II of ADA compliance - contact Iowa State Digital Access and Accessibility for details
- Encrypt sessions and randomly assign session IDs
Use long token keyspaces(12 digit or longer preferred) and frequent regeneration of session IDs - Content of the cookie must not contain or be used to obtain sensitive information
Users must be aware of cookie usage and be able to delete cookies - On log out, the session ID should be over-written
Authentication
- Implement password rules and policy, including expiry time and recovery procedure for all passwords per Iowa State password policy
- Passwords and user ids must be received, displayed, transmitted and stored in a secure manner
- Encrypt entire login using SSL
- Forms based authentication should not be cached and use POST request and “NO-CACHE” tags in the HTML page
- To prevent a user id and/or password from being hacked, failed logins should trigger a lock-out after a determined number of attempts
- All authentication attempts should be logged: log in, log outs, failed logins, password change requests
- Admins should be notified about lockouts
Authorization and Access Control Session Management
- Follow the practice of least privilege
- Deter users from entering file path to gain access to System files
- Assure that users’ activity is not cached when handling sensitive information
- Penetration testing will be necessary to assure that every access control has been tested and prevents unauthorized access
- Provide Pentest results of critical websites (moderate or higher level classified data) to Iowa State IT Security team for review
Data and Input Validation
- Validate input, headers, cookies, strings and forms by sanitizing it to what the app and database is expecting and not what can be accepted
- Prevent Cross Site Scripting (XSS) Command Injection Flaws
- Pentest validation required for Critical websites (moderate or higher level classified data)
- Report test results to Iowa State IT Security team
- Convert input symbols to HTML
- Add quotes to all user input
- Invalidate or time out session for unacceptable data
- Prevent Buffer Overflows by restricting all data input fields to a reasonable field lengths and specific data types
- Error Handling should be tested
No system information should be passed and only required information should be displayed to better user experience
Logging
- Log all Authentication and Authorization Events including administrative activity
- Encrypt where logs are sensitive
Remote Administration
- Prefer VPN remote logging only
- Use IP filtering or other industry best practices to restrict unauthorized logging
Web Application and Server Configuration
- Disable unwanted services, ports and accounts
- Use recommended certificates and not self-signed ones
- Disable debugging function
Web Form Policy and Best Practices
This policy outlines the acceptable use of web-based forms managed by Iowa State.
- Web forms that require personal information from a visitor must post a link to the Iowa State privacy policy
- Web forms must be created and managed using the University's chosen software solution (current solution: Drupal)
- Web forms may not collect sensitive data such as:
- Personally identifiable information (PII) that does not comply with FERPA – contact the Office of the Registrar regarding FERPA compliance
- Credit card information unless collected via approved University procedures for collecting such data
- Social Security numbers, birthdates and other private information to reduce inappropriate use by a third party