Essential Cybersecurity for Software QA

If you’re not an expert in it, cybersecurity can seem daunting, but it doesn’t have to be. Whether you’re a developer or a QA engineer, this guide will help you understand the basics you need to test your applications for better security.

In this blog, we’ll dive into technical best practices that you can apply right away to your work. Keep in mind that these steps are just a starting point. You can build on these for the rest of your cybersecurity journey.

Verify Caching

Some web pages should NEVER be cached. (e.g: login/admin pages). So you can check whether the header has the following attribute to make sure that your most sensitive pages don’t cache any secret or personal data:

Cache-Control: no-cache

Also, you should verify that the header on such a page has the following attribute when you click Back (e.g. when user logout and then clicks Back):

Cache-Control: must-revalidate

Verify Cookie Security

The cookie attributes HTTPOnly and Secure are important for protecting your website’s cookies. You can check these attributes in your browser’s Developer Tools under the Storage (or Application) tab, looking at the ‘HttpOnly’ and ‘Secure’ columns. Ideally, each should be set to TRUE (or checked).

  • HTTP Only: This attribute prevents cookies from being accessed by client-side scripts. Essentially, it limits cookie transmission to client-to-server communication only.
  • Secure: This attribute ensures that cookies are only sent over HTTPS, meaning they’re transmitted securely.

Note: If your website interacts with a third-party service or needs to be read directly by your application’s front-end JavaScript code, the HTTPOnly attribute may need to be FALSE for proper functionality. In the case of third-party access, ensure that you either use an additional SessionId for the third party or add that third party to your whitelist.

Verify Brute Force Security

A brute force test checks whether your system is vulnerable to brute force attacks, where an attacker attempts to guess user credentials by making multiple invalid login attempts. How you handle this test depends on your requirements. For example, a bank should enforce much stricter rules, while a simple website might not need them at all.

Try testing for brute force vulnerabilities by attempting to log in with invalid credentials 5-20 times. As you do this, look for any signs that the system is triggering security measures. Examples include temporary account lockouts, increasing delays, CAPTCHA challenges, or warning messages. Also ensure that it doesn’t leak too much information, like whether an account exists or if it was the password that was incorrect.

Ideally, you can prevent brute force attempts by implementing two-factor authentication (2FA) in your application.

Verify Roles Permissions

You should also ensure that your application properly enforces role-based access controls. If your system supports multiple user roles, verify that each role can only access its designated information and features. For example, regular users should neither see admin data in the UI nor access it directly via the API. Try logging in as a less-priviledged user and manually enter a URL route they shouldn’t be able to access. Use their session token in a tool like Postman to try to access APIs they shouldn’t have access to.

Similarly, one user should not be able to access another user’s personal information. If you see the user’s ID being sent with API requests, try sending a different users’s ID to see if this leaks private information.

Additionally, you can check things like whether a deleted admin account still has the ability to access, modify, or delete application data, as this could pose a significant security risk.

Verify Safe Credentials

To verify credential safety you must cover everything from app configuration to UI, database, and logs.

  1. Verify that the system enforces the creation of strong passwords.
  2. Look at the source code repository for configuration files, and ensure that there are no secrets stored in them.
  3. Ensure that passwords are stored securely in the database using a one-way hashing algorithm—at least SHA-256 or SHA-3 hashing with both a salt and pepper.
  4. Confirm that credentials and other sensitive data (such as authentication tokens, bank account details, or file paths) are not displayed in plain text in the logs.


  5. Make sure that the password change process is secure and that recovery options include proper identity verification steps.
  6. Check that strong passwords are required not only in production but also in staging and development environments, for both the web application and internal resources like the database.

Verify Injection Security

Injections includes a range of potential vulnerabilities, including XSS (cross-site scripting), HTML, SQL and OS command injections. Today, with the rise of the use of AI in software, we should check for prompt injections as well.

For comprehensive scanning, I highly recommend using vulnerability scanners (e.g ZAP, BurpSuite), since an input field is not the only place where a malicious payload can be applied. However, it’s also feasible to manually check for some of the most common issues, such as reflected XSS or HTML.

For instance, you can perform basic testing by inserting a <b> tag into input fields to see if the text becomes bold upon saving. This simple test can help identify HTML injection vulnerabilities. To discover XSS payloads that are specifically tailored to your case or browser, resources like the Cheat Sheet by PortSwigger can be incredibly useful.

Conclusion

Though cybersecurity might seem overwhelming at first, I’ve walked you through several small, practical steps you can implement to make a big difference in your application’s security. Remember, these measures are just the starting point of your security journey. As threats evolve, so should your approach—regular reviews and updates to your security practices are essential.

Keep learning, testing, and adapting, and you’ll be well on your way to building a more secure software!

Picture of Anna Bilous

Anna Bilous

Anna Bilous is a seasoned QA engineer with a Certificate in Quality Assurance. She brings 9 years of experience ensuring the quality of software. Her areas of expertise include manual testing, test case design, comprehensive quality assurance, and security assurance processes. Anna excels in uncovering critical issues and ensuring seamless user experiences. Her commitment to maintaining the highest quality standards has resulted in successful project outcomes and client satisfaction. Anna's professional journey has spanned diverse sectors, including finance, trading, advertisement, and health. Her adaptability and domain knowledge have proven instrumental in ensuring the quality of software across varied industries. Beyond the professional realm, Anna finds joy in handmade activities, indulging in embroidery and painting. Traveling and spending quality time with her family remain cherished aspects of her life.

Free Consultation

Sign up for a FREE consultation with one of Trailhead's experts.

"*" indicates required fields

This field is for validation purposes and should be left unchanged.

Related Blog Posts

We hope you’ve found this to be helpful and are walking away with some new, useful insights. If you want to learn more, here are a couple of related articles that others also usually find to be interesting:

Our Gear Is Packed and We're Excited to Explore With You

Ready to come with us? 

Together, we can map your company’s software journey and start down the right trails. If you’re set to take the first step, simply fill out our contact form. We’ll be in touch quickly – and you’ll have a partner who is ready to help your company take the next step on its software journey. 

We can’t wait to hear from you! 

Main Contact

This field is for validation purposes and should be left unchanged.

Together, we can map your company’s tech journey and start down the trails. If you’re set to take the first step, simply fill out the form below. We’ll be in touch – and you’ll have a partner who cares about you and your company. 

We can’t wait to hear from you! 

Montage Portal

Montage Furniture Services provides furniture protection plans and claims processing services to a wide selection of furniture retailers and consumers.

Project Background

Montage was looking to build a new web portal for both Retailers and Consumers, which would integrate with Dynamics CRM and other legacy systems. The portal needed to be multi tenant and support branding and configuration for different Retailers. Trailhead architected the new Montage Platform, including the Portal and all of it’s back end integrations, did the UI/UX and then delivered the new system, along with enhancements to DevOps and processes.

Logistics

We’ve logged countless miles exploring the tech world. In doing so, we gained the experience that enables us to deliver your unique software and systems architecture needs. Our team of seasoned tech vets can provide you with:

Custom App and Software Development

We collaborate with you throughout the entire process because your customized tech should fit your needs, not just those of other clients.

Cloud and Mobile Applications

The modern world demands versatile technology, and this is exactly what your mobile and cloud-based apps will give you.

User Experience and Interface (UX/UI) Design

We want your end users to have optimal experiences with tech that is highly intuitive and responsive.

DevOps

This combination of Agile software development and IT operations provides you with high-quality software at reduced cost, time, and risk.

Trailhead stepped into a challenging project – building our new web architecture and redeveloping our portals at the same time the business was migrating from a legacy system to our new CRM solution. They were able to not only significantly improve our web development architecture but our development and deployment processes as well as the functionality and performance of our portals. The feedback from customers has been overwhelmingly positive. Trailhead has proven themselves to be a valuable partner.

– BOB DOERKSEN, Vice President of Technology Services
at Montage Furniture Services

Technologies Used

When you hit the trails, it is essential to bring appropriate gear. The same holds true for your digital technology needs. That’s why Trailhead builds custom solutions on trusted platforms like .NET, Angular, React, and Xamarin.

Expertise

We partner with businesses who need intuitive custom software, responsive mobile applications, and advanced cloud technologies. And our extensive experience in the tech field allows us to help you map out the right path for all your digital technology needs.

  • Project Management
  • Architecture
  • Web App Development
  • Cloud Development
  • DevOps
  • Process Improvements
  • Legacy System Integration
  • UI Design
  • Manual QA
  • Back end/API/Database development

We partner with businesses who need intuitive custom software, responsive mobile applications, and advanced cloud technologies. And our extensive experience in the tech field allows us to help you map out the right path for all your digital technology needs.

Our Gear Is Packed and We're Excited to Explore with You

Ready to come with us? 

Together, we can map your company’s tech journey and start down the trails. If you’re set to take the first step, simply fill out the contact form. We’ll be in touch – and you’ll have a partner who cares about you and your company. 

We can’t wait to hear from you! 

Thank you for reaching out.

You’ll be getting an email from our team shortly. If you need immediate assistance, please call (616) 371-1037.