<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Software Testing Help &#187; Security testing</title>
	<atom:link href="http://www.softwaretestinghelp.com/category/security-testing/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.softwaretestinghelp.com</link>
	<description>Software Testing Complete Guide</description>
	<lastBuildDate>Thu, 26 Jan 2012 19:41:36 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
		<item>
		<title>How to Test Application Security &#8211; Web and Desktop Application Security Testing Techniques</title>
		<link>http://www.softwaretestinghelp.com/how-to-test-application-security-web-and-desktop-application-security-testing-techniques/</link>
		<comments>http://www.softwaretestinghelp.com/how-to-test-application-security-web-and-desktop-application-security-testing-techniques/#comments</comments>
		<pubDate>Mon, 05 Sep 2011 20:07:53 +0000</pubDate>
		<dc:creator>Vijay</dc:creator>
				<category><![CDATA[Security testing]]></category>
		<category><![CDATA[Web Testing]]></category>
		<category><![CDATA[Security Testing]]></category>
		<category><![CDATA[Security Testing Techniques]]></category>

		<guid isPermaLink="false">http://www.softwaretestinghelp.com/?p=870</guid>
		<description><![CDATA[Need of Security Testing? Software industry has achieved a solid recognition in this age. In the recent decade, however, cyber-world seems to be even more dominating and driving force which is shaping up the new forms of almost every business. Web based ERP systems used today are the best evidence that IT has revolutionized our [...]<p>---------------------<br/>
I just wanted to thank you for subscribing to SoftwareTestingHelp.com. <b>This blog is a success because of you and your support. Here's to your success!</b><br/><br/>As always, I appreciate your valuable comments. <b>Visit below link to post your comment:</b><br/><b><a href="http://www.softwaretestinghelp.com/how-to-test-application-security-web-and-desktop-application-security-testing-techniques/">How to Test Application Security &#8211; Web and Desktop Application Security Testing Techniques</a></b>
<br/><br/>Thank you so much!
---------------------<br/>
<b>Recommended:</b>
<a href="http://www.testlodge.com/">
<img src="http://www.softwaretestinghelp.com/wp-content/qa/uploads/2012/01/TestLodge.jpg" alt="HTML tutorial" width="117" height="42" />
</a>
<a href="http://www.testlodge.com/"><b>TestLodge - Online test case management tool</b></a> - Web based test case management software allowing you to manage your test plans, requirements, test cases and test runs with ease.</p>
]]></description>
			<content:encoded><![CDATA[<p><strong>Need of <a title="Security testing" href="http://www.softwaretestinghelp.com/category/security-testing/">Security Testing</a>?</strong></p>
<p>Software industry has achieved a solid recognition in this age. In the recent decade, however, cyber-world seems to be even more dominating and driving force which is shaping up the new forms of almost every business. Web based ERP systems used today are the best evidence that IT has revolutionized our beloved global village.</p>
<p>These days, websites are not meant only for publicity or marketing but these have been evolved into the stronger tools to cater complete business needs. Web based Payroll systems, Shopping Malls, Banking, Stock Trade application are not only being used by organizations but are also being sold as products today.</p>
<p>This means that online applications have gained the trust of customers and <span id="more-870"></span>users regarding their vital feature named as SECURITY. No doubt, the security factor is of primary value for desktop applications too. However, when we talk about web, importance of security increases exponentially. If an online system cannot protect the transaction data, no one will ever think of using it. Security is neither a word in search of its definition yet, nor is it a subtle concept. However, I would like to list some complements of security.</p>
<p><a href="http://www.softwaretestinghelp.com/wp-content/qa/uploads/2011/09/Security-Testing.jpg"><img class="alignnone size-medium wp-image-871" title="Security Testing" src="http://www.softwaretestinghelp.com/wp-content/qa/uploads/2011/09/Security-Testing-300x225.jpg" alt="Security Testing" width="333" height="250" /></a></p>
<h3>Examples of security flaws in an application:</h3>
<p><strong>1)</strong> A Student Management System is insecure if ‘Admission’ branch can edit the data of ‘Exam’ branch<br />
<strong>2)</strong> An ERP system is not secure if DEO (data entry operator) can generate ‘Reports’<br />
<strong>3)</strong> An online Shopping Mall has no security if customer’s Credit Card Detail is not encrypted<br />
<strong>4)</strong> A custom software possess inadequate security if an SQL query retrieves actual passwords of its users</p>
<p><strong>Security Testing Definition:</strong><br />
Now, I present you a <strong>simplest definition of Security</strong> in my own words. <strong><em>“Security means that authorized access is granted to protected data and unauthorized access is restricted”</em>.</strong> So, it has two major aspects; first is protection of data and second one is access to that data. Moreover, whether the application is desktop or web based, security revolves around the two aforementioned aspects. Let us have an overview of security aspects for both desktop and web based software applications.</p>
<p><strong>Desktop and Web Security Testing:</strong><br />
A desktop application should be secure not only regarding its access but also with respect to organization and storage of its data. Similarly, a web application demands even more security with respect to its access, along with data protection. Web developer should make the application immune to SQL Injections, Brute Force Attacks and XSS (cross site scripting). Similarly, if the web application facilitates remote access points then these must be secure too. Moreover, keep in mind that Brute Force Attack is not only related to web applications, desktop software is also vulnerable to this.</p>
<p>I hope this foreword is enough and now let me come to the point. Kindly accept my apology if you so far thought that you are reading about the subject of this article. Though I have briefly explained software Security and its major concerns, but my topic is ‘Security Testing’. In order to know further details of security aspects, kindly refer to &#8211; <a title="Web application security testing" href="http://www.softwaretestinghelp.com/security-testing-of-web-applications/"><strong>Web application security testing</strong></a> article.</p>
<p>I will now explain how the features of security are implemented in software application and how should these be tested. My focus will be on Whats and Hows of security testing, not of security.</p>
<h3>Security Testing Techniques:</h3>
<h3>1) Access to Application:<strong></strong></h3>
<p>Whether it is a desktop application of website, access security is implemented by <strong>‘Roles and Rights Management’.</strong> It is often done implicitly while covering functionality, e.g.in a Hospital Management System a receptionist is least concerned about the laboratory tests as his job is to just register the patients and schedule their appointments with doctors. So, all the menus, forms and screen related to lab tests will not be available to the Role of ‘Receptionist’. Hence, the proper implementation of roles and rights will guarantee the security of access.</p>
<p><strong>How to Test:</strong> In order to test this, thorough testing of all roles and rights should be performed. Tester should create several user accounts with different as well multiple roles. Then he should use the application with the help of these accounts and should verify that every role has access to its own modules, screens, forms and menus only. If tester finds any conflict, he should log a security issue with complete confidence.</p>
<h3>2. Data Protection:</h3>
<p>There are further three aspects of data security. First one is that <strong>a user can view or utilize only the data which he is supposed to use</strong>. This is also ensured by roles and rights e.g. a TSR (telesales representative) of a company can view the data of available stock, but cannot see how much raw material was purchased for production.</p>
<p>So, testing of this aspect is already explained above. The second aspect of data protection is related to <strong>how that data is stored in the DB</strong>. All the sensitive data must be encrypted to make it secure. Encryption should be strong especially for sensitive data like passwords of user accounts, credit card numbers or other business critical information. Third and last aspect is extension of this second aspect. Proper security measures must be adopted when flow of sensitive or business critical data occurs. Whether this data floats between different modules of same application, or is transmitted to different applications it must be encrypted to make it safe.</p>
<p><strong>How to Test Data Protection:</strong> The tester should query the database for ‘passwords’ of user account, billing information of clients, other business critical and sensitive data and should verify that all such data is saved in encrypted form in the DB. Similarly (s)he must verify that between different forms or screens, data is transmitted after proper encryption. Moreover, tester should ensure that the encrypted data is properly decrypted at the destination. Special attention should be paid on different ‘submit’ actions. The tester must verify that when the information is being transmitted between client and server, it is not displayed in the address bar of web browser in understandable format. If any of these verifications fail, the application definitely has security flaw.</p>
<h3>3. Brute-Force Attack:</h3>
<p>Brute Force Attack is mostly done by some software tools. The concept is that using a valid user ID, s<strong>oftware attempts to guess the associated password by trying to login again and again.</strong> A simple example of security against such attack is account suspension for a short period of time as all the mailing applications like ‘Yahoo’ and ‘Hotmail’ do. If, a specific number of consecutive attempts (mostly 3) fail to login successfully, then that account is blocked for some time (30 minutes to 24 hrs).</p>
<p><strong>How to test Brute-Force Attack:</strong> The tester must verify that some mechanism of account suspension is available and is working accurately. (S)He must attempt to login with invalid user IDs and Passwords alternatively to make sure that software application blocks the accounts that continuously attempt login with invalid information. If the application is doing so, it is secure against brute-force attack. Otherwise, this security vulnerability must be reported by the tester.</p>
<p><strong>The above three security aspects should be taken into account for both web and desktop applications while, the following points are related with web based applications only.</strong></p>
<h3>4. <a title="Web application security testing" href="http://www.softwaretestinghelp.com/sql-injection-%E2%80%93-how-to-test-application-for-sql-injection-attacks/">SQL Injection</a> and XSS (cross site scripting):</h3>
<p>Conceptually speaking, the theme of both these hacking attempts is similar, so these are discussed together. In this approach, <strong>malicious script is used by the hackers in order to manipulate a website</strong>. There are several ways to immune against such attempts. For all input fields of the website, field lengths should be defined small enough to restrict input of any script e.g. Last Name should have field length 30 instead of 255. There may be some input fields where large data input is necessary, for such fields proper validation of input should be performed prior to saving that data in the application. Moreover, in such fields any html tags or script tag input must be prohibited. In order to provoke XSS attacks, the application should discard script redirects from unknown or untrusted applications.</p>
<p><strong>How to test SQL Injection and XSS:</strong> Tester must ensure that maximum lengths of all input fields are defined and implemented. (S)He should also ensure that defined length of input fields does not accommodate any script input as well as tag input. Both these can be easily tested e.g. if 20 is the maximum length specified for ‘Name’ field; and input string “&lt;p&gt;thequickbrownfoxjumpsoverthelazydog” can verify both these constraints. It should also be verified by the tester that application does not support anonymous access methods. In case any of these vulnerabilities exists, the application is in danger.</p>
<h3>5. Service Access Points (Sealed and Secure Open)</h3>
<p>Today, businesses depend and collaborate with each other, same holds good for applications especially websites. In such case, both the collaborators should define and publish some access points for each other. So far the scenario seems quite simple and straightforward but, for some web based product like stock trading, things are not so simple and easy. When there is large number of target audience, the access points should be open enough to facilitate all users, accommodating enough to fulfill all users’ requests and secure enough to cope with any security-trial.</p>
<p><strong>How to Test Service Access Points:</strong> Let me explain it with the example of stock trading web application; an investor (who wants to purchase the shares) should have access to current and historical data of stock prices. User should be given the facility to download this historical data. This demands that application should be open enough. By accommodating and secure, I mean that application should facilitate investors to trade freely (under the legislative regulations). They may purchase or sale 24/7 and the data of transactions must be immune to any hacking attack. Moreover, a large number of users will be interacting with application simultaneously, so the application should provide enough number access point to entertain all the users.</p>
<p>In some cases these <strong>access points can be sealed for unwanted applications or people</strong>. This depends upon the business domain of application and its users, e.g. a custom web based Office Management System may recognize its users on the basis of IP Addresses and denies to establish a connection with all other systems (applications) that do not lie in the range of valid IPs for that application.</p>
<p>Tester must ensure that all the<strong> inter-network and intra-network access</strong> to the application is from trusted applications, machines (IPs) and users. In order to verify that an open access point is secure enough, tester must try to access it from different machines having both trusted and untrusted IP addresses. Different sort of real-time transactions should be tried in a bulk to have a good confidence of application’s performance.  By doing so, the capacity of access points of the application will also be observed clearly.</p>
<p>Tester must ensure that the application entertains all the communication requests from trusted IPs and applications only while all the other request are rejected. Similarly, if the application has some open access point, then tester should ensure that it allows (if required) uploading of data by users in secure way. By this secure way I mean, the file size limit, file type restriction and scanning of uploaded file for viruses or other security threats. This is all how a tester can verify the security of an application with respect to its access points.</p>
<p><span style="color: #800000;"><em>If you enjoy reading this article please make sure to share it with your friends. Please leave your questions/tips/suggestions in the comment section below and I’ll try to answer as many as I can.</em></span></p>
<p>---------------------<br/>
I just wanted to thank you for subscribing to SoftwareTestingHelp.com. <b>This blog is a success because of you and your support. Here's to your success!</b><br/><br/>As always, I appreciate your valuable comments. <b>Visit below link to post your comment:</b><br/><b><a href="http://www.softwaretestinghelp.com/how-to-test-application-security-web-and-desktop-application-security-testing-techniques/">How to Test Application Security &#8211; Web and Desktop Application Security Testing Techniques</a></b>
<br/><br/>Thank you so much!
---------------------<br/>
<b>Recommended:</b>
<a href="http://www.testlodge.com/">
<img src="http://www.softwaretestinghelp.com/wp-content/qa/uploads/2012/01/TestLodge.jpg" alt="HTML tutorial" width="117" height="42" />
</a>
<a href="http://www.testlodge.com/"><b>TestLodge - Online test case management tool</b></a> - Web based test case management software allowing you to manage your test plans, requirements, test cases and test runs with ease.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.softwaretestinghelp.com/how-to-test-application-security-web-and-desktop-application-security-testing-techniques/feed/</wfw:commentRss>
		<slash:comments>28</slash:comments>
		</item>
		<item>
		<title>How to Test Banking Applications</title>
		<link>http://www.softwaretestinghelp.com/testing-banking-applications/</link>
		<comments>http://www.softwaretestinghelp.com/testing-banking-applications/#comments</comments>
		<pubDate>Mon, 20 Jun 2011 18:14:02 +0000</pubDate>
		<dc:creator>Vijay</dc:creator>
				<category><![CDATA[Database Testing]]></category>
		<category><![CDATA[Security testing]]></category>
		<category><![CDATA[Software Testing Tools]]></category>

		<guid isPermaLink="false">http://www.softwaretestinghelp.com/?p=801</guid>
		<description><![CDATA[Banking applications are considered to be one of the most complex applications in today’s software development and testing industry. What makes Banking application so complex? What approach should be followed in order to test the complex workflows involved? In this article we will be highlighting different stages and techniques involved in testing Banking applications. The [...]<p>---------------------<br/>
I just wanted to thank you for subscribing to SoftwareTestingHelp.com. <b>This blog is a success because of you and your support. Here's to your success!</b><br/><br/>As always, I appreciate your valuable comments. <b>Visit below link to post your comment:</b><br/><b><a href="http://www.softwaretestinghelp.com/testing-banking-applications/">How to Test Banking Applications</a></b>
<br/><br/>Thank you so much!
---------------------<br/>
<b>Recommended:</b>
<a href="http://www.testlodge.com/">
<img src="http://www.softwaretestinghelp.com/wp-content/qa/uploads/2012/01/TestLodge.jpg" alt="HTML tutorial" width="117" height="42" />
</a>
<a href="http://www.testlodge.com/"><b>TestLodge - Online test case management tool</b></a> - Web based test case management software allowing you to manage your test plans, requirements, test cases and test runs with ease.</p>
]]></description>
			<content:encoded><![CDATA[<p>Banking applications are considered to be one of the most complex applications in today’s software development and testing industry. <strong>What makes Banking application so complex?</strong> What approach should be followed in order to test the complex workflows involved? In this article we will be highlighting different stages and techniques involved in testing Banking applications.</p>
<p><strong>The characteristics of a Banking application are as follows:</strong></p>
<ul>
<li>Multi      tier functionality to support thousands of concurrent user sessions</li>
<li>Large      scale Integration , typically a banking application integrates with      numerous other applications such as Bill Pay utility and Trading accounts</li>
<li>Complex      Business workflows</li>
<li>Real      Time and Batch processing</li>
<li>High      rate of Transactions per seconds</li>
<li>Secure      Transactions</li>
<li>Robust      Reporting section to keep track of day to day transactions</li>
<li>Strong      Auditing to troubleshoot customer issues</li>
<li>Massive      storage system</li>
<li>Disaster      Management.</li>
</ul>
<p><span id="more-801"></span>The above listed ten points are the <strong>most important characteristics of a Banking application.</strong></p>
<p>Banking applications have multiple tiers involved in performing an operation. For Example, a <strong>banking application may have:</strong></p>
<ol>
<li>Web      Server to interact with end users via Browser</li>
<li>Middle      Tier to validate the input and output for web server</li>
<li>Data      Base to store data and procedures</li>
<li>Transaction      Processor which could be a large capacity Mainframe or any other Legacy      system to carry out Trillions of transactions per second.</li>
</ol>
<p>If we talk about testing banking applications it requires an <strong>end to end testing methodology involving multiple software testing techniques to ensure:</strong></p>
<ul>
<li> Total  coverage of all banking workflows and Business Requirements</li>
<li> Functional aspect of the application</li>
<li> Security aspect of the application</li>
<li> Data Integrity</li>
<li> Concurrency</li>
<li> User Experience</li>
</ul>
<p><strong>Typical stages involved in testing Banking Applications</strong> are shown in below workflow which we will be discussing individually.</p>
<p>&nbsp;</p>
<p><a href="http://www.softwaretestinghelp.com/wp-content/qa/uploads/2011/06/Testing-Banking-Applications.jpg"><img class="alignnone size-full wp-image-803" title="Testing Banking Applications" src="http://www.softwaretestinghelp.com/wp-content/qa/uploads/2011/06/Testing-Banking-Applications.jpg" alt="Testing Banking Applications" width="487" height="527" /></a></p>
<p>&nbsp;</p>
<h3>1) <a title="Testing Software Requirements" href="http://www.softwaretestinghelp.com/how-to-test-software-requirements-specification-srs/">Requirement</a> Gathering:</h3>
<p>Requirement gathering phase involves documentation of requirements either as Functional Specifications or Use Cases. Requirements are gathered as per customer needs and documented by Banking Experts or Business Analyst. To write requirements on more than one subject experts are involved as banking itself has multiple sub domains and one full fledge banking application will be the integration of all. For Example: A banking application may have separate modules for Transfers, Credit Cards, Reports, Loan Accounts, Bill Payments, Trading Etc.</p>
<h3>2) Requirement Review:</h3>
<p>The deliverable of Requirement Gathering is reviewed by all the stakeholders such as QA Engineers, Development leads and Peer Business Analysts. They cross check that neither existing business workflows nor new workflows are violated.</p>
<h3>3) Business Scenario Preparations:</h3>
<p>In this stage QA Engineers derive Business Scenarios from the requirement documents (Functions Specs or Use Cases); Business Scenarios are derived in such a way that all Business Requirements are covered. Business Scenarios are high level scenarios without any detailed steps, further these Business Scenarios are reviewed by Business Analyst to ensure all of Business Requirements are met and <strong>its easier for BAs to review high level scenarios than reviewing low level detailed Test Cases.</strong></p>
<h3>4) <a title="Functional testing tool" href="http://www.softwaretestinghelp.com/qtp-functional-testing-tool-review/">Functional Testing</a>:</h3>
<p>In this stage functional testing is performed and the usual software testing activities are performed such as:</p>
<p><strong>Test Case Preparation:</strong><br />
In this stage Test Cases are derived from Business Scenarios, one Business Scenario leads to several positive test cases and negative test cases. Generally tools used during this stage are Microsoft Excel, Test Director or Quality  Center.<br />
<strong>Test Case Review: </strong><br />
Reviews by peer QA Engineers<br />
<strong><a title="Writing Test cases" href="http://www.softwaretestinghelp.com/how-to-write-effective-test-cases-test-cases-procedures-and-definitions/">Test Case</a> Execution:</strong><br />
Test Case Execution could be either manual or automatic involving tools like QC, QTP or any other.</p>
<h3>5) <a title="Database testing" href="http://www.softwaretestinghelp.com/category/database-testing/">Database Testing</a>:</h3>
<p>Banking Application involves complex transaction which are performed both at UI level and Database level, Therefore Database testing is as important as functional testing. Database in itself is an entirely separate layer hence it is carried out by database specialists and it uses techniques like</p>
<ul>
<li>Data loading</li>
<li>Database Migration</li>
<li>Testing DB Schema and Data types</li>
<li>Rules Testing</li>
<li>Testing Stored Procedures and Functions</li>
<li>Testing Triggers</li>
<li>Data Integrity</li>
</ul>
<h3>6) <a title="Security testing tips" href="http://www.softwaretestinghelp.com/category/security-testing/">Security Testing</a>:</h3>
<p>Security Testing is usually the last stage in the testing cycle as completing functional and non functional are entry criteria to commence Security testing. Security testing is one of the major stages in the entire Application testing cycle as this stage ensures that application complies with Federal and Industry standards. Security testing cycle makes sure the application does not have any web vulnerability which may expose sensitive data to an intruder or an attacker and complies with standards like OWASP.</p>
<p>In this stage the major task involves in the whole application scan which is carried out using tools like <a title="IBM Appscan security testing toll" href="http://www.ibm.com/software/awdtools/appscan/" target="_blank">IBM Appscan</a> or <a title="HP Webinspect security testing tool" href="https://www.fortify.com/products/web_inspect.html" target="_blank">HP WebInspect</a> (2 Most popular tools).</p>
<p>Once the Scan is complete the Scan Report is published out of which False Positives are filtered out and rest of the vulnerability are reported to Development team for fixing depending on the Severity.</p>
<p>Other <strong>Manual tools for Security Testing</strong> used are: <a title="security testing tool Paros Proxy" href="http://parosproxy.org" target="_blank">Paros Proxy</a>, <a title="Http Watch security testing tool" href="http://www.httpwatch.com" target="_blank">Http Watch</a>, <a title="Burp Suite security testing tool" href="http://www.portswigger.net/burp/" target="_blank">Burp Suite</a>, <a title="Fortify security testing tool" href="http://www.fortify.com" target="_blank">Fortify</a> tools Etc.</p>
<p>Apart from the above stages there might be different stages involved like Integration Testing and Performance Testing.</p>
<p>In today’s scenario <strong>majority of Banking Projects are using</strong>: Agile/Scrum, RUP and Continuous Integration methodologies, and Tools packages like Microsoft’s VSTS and Rational Tools.</p>
<p>As we mentioned RUP above, RUP stands for Rational Unified Process, which is an iterative software development methodology introduced by IBM which comprises of four phases in which development and testing activities are carried out.</p>
<p><strong>Four phases are:</strong><br />
i) Inception<br />
ii) Collaboration<br />
iii) Construction and<br />
iv) Transition<br />
RUP widely involves IBM Rational tools.</p>
<p>In this article we discussed <strong>how complex a Banking application could be</strong> and what are the <strong>typical phases involved in testing the application</strong>. Apart from that we also discussed current trends followed by IT industries including software development methodologies and tools.</p>
<p><em><strong>In case you have queries, comments or any unanswered questions please post it below I will be happy to answer those.</strong></em></p>
<p><em><strong>Like this post? </strong></em>Subscribe to get new articles via <a title="Software Testing help RSS Feed" href="http://feeds.feedburner.com/Softwaretestinghelp" target="_blank"><strong>RSS</strong></a> or <a title="Software Testing Help Email Newsletter" href="http://www.feedburner.com/fb/a/emailverifySubmit?feedId=956053&amp;loc=en_US" target="_blank"><strong>Email</strong></a>.</p>
<p>---------------------<br/>
I just wanted to thank you for subscribing to SoftwareTestingHelp.com. <b>This blog is a success because of you and your support. Here's to your success!</b><br/><br/>As always, I appreciate your valuable comments. <b>Visit below link to post your comment:</b><br/><b><a href="http://www.softwaretestinghelp.com/testing-banking-applications/">How to Test Banking Applications</a></b>
<br/><br/>Thank you so much!
---------------------<br/>
<b>Recommended:</b>
<a href="http://www.testlodge.com/">
<img src="http://www.softwaretestinghelp.com/wp-content/qa/uploads/2012/01/TestLodge.jpg" alt="HTML tutorial" width="117" height="42" />
</a>
<a href="http://www.testlodge.com/"><b>TestLodge - Online test case management tool</b></a> - Web based test case management software allowing you to manage your test plans, requirements, test cases and test runs with ease.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.softwaretestinghelp.com/testing-banking-applications/feed/</wfw:commentRss>
		<slash:comments>32</slash:comments>
		</item>
		<item>
		<title>Top 25 common programming bugs every tester should know</title>
		<link>http://www.softwaretestinghelp.com/top-25-common-programming-bugs-every-tester-should-know/</link>
		<comments>http://www.softwaretestinghelp.com/top-25-common-programming-bugs-every-tester-should-know/#comments</comments>
		<pubDate>Thu, 12 Feb 2009 18:56:55 +0000</pubDate>
		<dc:creator>Vijay</dc:creator>
				<category><![CDATA[Security testing]]></category>
		<category><![CDATA[software testing links]]></category>
		<category><![CDATA[Testing Tips and resources]]></category>

		<guid isPermaLink="false">http://www.softwaretestinghelp.com/top-25-common-programming-bugs-every-tester-should-know/</guid>
		<description><![CDATA[Just a quick note to share a useful resource with you. Just came across a good article “25 common programming errors” for software programmers and software testers. Basically this is more useful for programmers but I think software testers can get insight on how developers can unknowingly leave bugs in software programs. Each bug listed [...]<p>---------------------<br/>
I just wanted to thank you for subscribing to SoftwareTestingHelp.com. <b>This blog is a success because of you and your support. Here's to your success!</b><br/><br/>As always, I appreciate your valuable comments. <b>Visit below link to post your comment:</b><br/><b><a href="http://www.softwaretestinghelp.com/top-25-common-programming-bugs-every-tester-should-know/">Top 25 common programming bugs every tester should know</a></b>
<br/><br/>Thank you so much!
---------------------<br/>
<b>Recommended:</b>
<a href="http://www.testlodge.com/">
<img src="http://www.softwaretestinghelp.com/wp-content/qa/uploads/2012/01/TestLodge.jpg" alt="HTML tutorial" width="117" height="42" />
</a>
<a href="http://www.testlodge.com/"><b>TestLodge - Online test case management tool</b></a> - Web based test case management software allowing you to manage your test plans, requirements, test cases and test runs with ease.</p>
]]></description>
			<content:encoded><![CDATA[<p>Just a quick note to share a useful resource with you. Just came across a good article <strong>“</strong><a href="http://cwe.mitre.org/top25/" target="_blank">25 common programming errors</a><strong>”</strong> for software programmers and software testers. Basically this is more useful for programmers but I think software testers can get insight on how developers can unknowingly leave bugs in software programs.</p>
<p>Each bug listed in this resource can lead to serious software vulnerabilities if not fixed. The <strong>top 25 security bugs</strong> list will help programmers to avoid some common but serious coding mistakes. For software testers list will be useful as a <a href="http://www.softwaretestinghelp.com/security-testing-of-web-applications/">security testing</a> <a href="http://www.softwaretestinghelp.com/testing-checklist/">checklist</a> for Internet as well as for testing desktop application.</p>
<p><span id="more-353"></span><strong>Here are few top security vulnerabilities discussed in detail in this article:</strong></p>
<ul>
<li> Improper input validation</li>
<li> Improper escaping of output or encoding</li>
<li> SQL injection</li>
<li> Cross-site scripting</li>
<li> Race conditions</li>
<li> Information leak in error messages</li>
<li> Error while transmitting sensitive information</li>
<li> Memory leak</li>
<li> External control of critical data and file paths</li>
<li> Improper initialization</li>
<li> Improper authorization</li>
<li> Client side security checks</li>
</ul>
<p>I think, the <strong>most common security vulnerability</strong> mistake developers make is &#8220;Client side enforcement of server side security&#8221;.</p>
<p>Check out below article so that you can at least <strong>help developers for improving their code standards</strong> <img src='http://www.softwaretestinghelp.com/wp-includes/images/smilies/icon_wink.gif' alt=';-)' class='wp-smiley' /> </p>
<p><a href="http://cwe.mitre.org/top25/" title="25 top prgramming bugs" target="_blank"><strong>Top 25 common programming Errors</strong></a></p>
<p>---------------------<br/>
I just wanted to thank you for subscribing to SoftwareTestingHelp.com. <b>This blog is a success because of you and your support. Here's to your success!</b><br/><br/>As always, I appreciate your valuable comments. <b>Visit below link to post your comment:</b><br/><b><a href="http://www.softwaretestinghelp.com/top-25-common-programming-bugs-every-tester-should-know/">Top 25 common programming bugs every tester should know</a></b>
<br/><br/>Thank you so much!
---------------------<br/>
<b>Recommended:</b>
<a href="http://www.testlodge.com/">
<img src="http://www.softwaretestinghelp.com/wp-content/qa/uploads/2012/01/TestLodge.jpg" alt="HTML tutorial" width="117" height="42" />
</a>
<a href="http://www.testlodge.com/"><b>TestLodge - Online test case management tool</b></a> - Web based test case management software allowing you to manage your test plans, requirements, test cases and test runs with ease.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.softwaretestinghelp.com/top-25-common-programming-bugs-every-tester-should-know/feed/</wfw:commentRss>
		<slash:comments>50</slash:comments>
		</item>
		<item>
		<title>SQL Injection – How to Test Web Applications against SQL Injection Attacks</title>
		<link>http://www.softwaretestinghelp.com/sql-injection-%e2%80%93-how-to-test-application-for-sql-injection-attacks/</link>
		<comments>http://www.softwaretestinghelp.com/sql-injection-%e2%80%93-how-to-test-application-for-sql-injection-attacks/#comments</comments>
		<pubDate>Sat, 17 Jan 2009 15:23:29 +0000</pubDate>
		<dc:creator>Vijay</dc:creator>
				<category><![CDATA[Security testing]]></category>
		<category><![CDATA[Web Testing]]></category>

		<guid isPermaLink="false">http://www.softwaretestinghelp.com/sql-injection-%e2%80%93-how-to-test-application-for-sql-injection-attacks/</guid>
		<description><![CDATA[SQL injections are most dangerous web attacks on web applications. Testers need to test web applications for all web vulnerabilities. This articles explains SQL injection methods with sample SQL statements that are commonly used by attackers for hacking database and compromising important information.  <p>---------------------<br/>
I just wanted to thank you for subscribing to SoftwareTestingHelp.com. <b>This blog is a success because of you and your support. Here's to your success!</b><br/><br/>As always, I appreciate your valuable comments. <b>Visit below link to post your comment:</b><br/><b><a href="http://www.softwaretestinghelp.com/sql-injection-%e2%80%93-how-to-test-application-for-sql-injection-attacks/">SQL Injection – How to Test Web Applications against SQL Injection Attacks</a></b>
<br/><br/>Thank you so much!
---------------------<br/>
<b>Recommended:</b>
<a href="http://www.testlodge.com/">
<img src="http://www.softwaretestinghelp.com/wp-content/qa/uploads/2012/01/TestLodge.jpg" alt="HTML tutorial" width="117" height="42" />
</a>
<a href="http://www.testlodge.com/"><b>TestLodge - Online test case management tool</b></a> - Web based test case management software allowing you to manage your test plans, requirements, test cases and test runs with ease.</p>
]]></description>
			<content:encoded><![CDATA[<p>Security testing of web applications against SQL Injection, explained with simple examples &#8211; By Inder P Singh.</p>
<p>Many applications use some type of a database. An application under test might have a user interface that accepts user input that is used to perform the following tasks:</p>
<p>1.    Show the relevant stored data to the user e.g. the application checks the credentials of the user using the log in information entered by the user and exposes only the relevant functionality and data to the user</p>
<p><span id="more-344"></span>2.    Save the data entered by the user to the database e.g. once the user fills up a form and submits it, the application proceeds to save the data to the database; this data is then made available to the user in the same session as well as in subsequent sessions</p>
<p>Some of the user inputs might be used in framing SQL statements that are then executed by the application on the database. It is possible for an application NOT to handle the inputs given by the user properly. If this is the case,<strong> a malicious user could provide unexpected inputs to the application that are then used to frame and execute SQL statements on the database.</strong> This is called SQL injection. The consequences of such an action could be alarming.</p>
<p><strong>The following things might result from SQL injection:</strong></p>
<p><strong>1. </strong>The user could log in to the application as another user, even as an administrator.</p>
<p><strong>2. </strong>The user could view private information belonging to other users e.g. details of other users’ profiles, their transaction details etc.</p>
<p><strong>3. </strong>The user could change application configuration information and the data of the other users.</p>
<p><strong>4. </strong>The user could modify the structure of the database; even delete tables in the application database.</p>
<p><strong>5.</strong> The user could take control of the database server and execute commands on it at will.</p>
<p>Since the consequences of allowing the SQL injection technique could be severe, it follows that SQL injection should be tested during the security testing of an application. Now with an overview of the SQL injection technique, let us understand a few practical examples of SQL injection.</p>
<p><em><strong>Important: The SQL injection problem should be tested only in the test environment. </strong></em></p>
<p>If the application has a log in page, it is possible that the application uses a dynamic SQL such as statement below. This statement is expected to return at least a single row with the user details from the Users table as the result set when there is a row with the user name and password entered in the SQL statement.</p>
<p>SELECT * FROM Users WHERE User_Name = &#8216;&#8221; &amp; strUserName &amp; &#8220;&#8216; AND Password = &#8216;&#8221; &amp; strPassword &amp; “’;”</p>
<p>If the tester would enter John as the strUserName (in the textbox for user name) and Smith as strPassword (in the textbox for password), the above SQL statement would become:</p>
<p>SELECT * FROM Users WHERE User_Name = &#8216;John&#8217; AND Password = &#8216;Smith’;</p>
<p>If the tester would enter John’&#8211; as strUserName and no strPassword, the SQL statement would become:</p>
<p>SELECT * FROM Users WHERE User_Name = &#8216;John&#8217;&#8211; AND Password = &#8216;Smith’;</p>
<p>Note that the part of the SQL statement after John is turned into a comment. If there were any user with the user name of John in the Users table, the application could allow the tester to log in as the user John. The tester could now view the private information of the user John.</p>
<p>What if the tester does not know the name of any existing user of the application? In such a case, the tester could try common user names like admin, administrator and sysadmin. If none of these users exist in the database, the tester could enter John’ or ‘x’=’x as strUserName and Smith’ or ‘x’=’x  as strPassword. This would cause the SQL statement to become like the one below.</p>
<p>SELECT * FROM Users WHERE User_Name = &#8216;John&#8217; or &#8216;x&#8217;='x&#8217; AND Password = &#8216;Smith’ or ‘x’=’x’;</p>
<p>Since ‘x’=’x’ condition is always true, the result set would consist of all the rows in the Users table. The application could allow the tester to log in as the first user in the Users table.</p>
<p><em><strong>Important: The tester should request the database administrator or the developer to copy the table in question before attempting the following SQL injection.</strong></em></p>
<p>If the tester would enter John’; DROP table users_details;’—as strUserName and anything as strPassword, the SQL statement would become like the one below.</p>
<p>SELECT * FROM Users WHERE User_Name = ‘John’; DROP table users_details;’ –‘ AND Password = &#8216;Smith&#8217;;</p>
<p>This statement could cause the table “users_details” to be permanently deleted from the database.</p>
<p>Though the above examples deal with using the SQL injection technique only the log in page, the tester should test this technique on all the pages of the application that accept user input in textual format e.g. search pages, feedback pages etc.</p>
<p>SQL injection might be possible in applications that use SSL. Even a firewall might not be able to protect the application against the SQL injection technique.</p>
<p>I have tried to explain the SQL injection technique in a simple form. I would like to re-iterate that SQL injection should be tested only in a test environment and not in the development environment, production environment or any other environment. Instead of manually testing whether the application is vulnerable to SQL injection or not, one could use a web vulnerability scanner that checks for SQL injection.</p>
<p><em><strong>Related: </strong></em>Couple of months back <em>Inder</em> wrote an interesting article on &#8220;<strong><a href="http://www.softwaretestinghelp.com/security-testing-of-web-applications/" title="Web security testing">Security testing of web application</a></strong>&#8220;  Have a look at it for more details on different web vulnerabilities.</p>
<p>---------------------<br/>
I just wanted to thank you for subscribing to SoftwareTestingHelp.com. <b>This blog is a success because of you and your support. Here's to your success!</b><br/><br/>As always, I appreciate your valuable comments. <b>Visit below link to post your comment:</b><br/><b><a href="http://www.softwaretestinghelp.com/sql-injection-%e2%80%93-how-to-test-application-for-sql-injection-attacks/">SQL Injection – How to Test Web Applications against SQL Injection Attacks</a></b>
<br/><br/>Thank you so much!
---------------------<br/>
<b>Recommended:</b>
<a href="http://www.testlodge.com/">
<img src="http://www.softwaretestinghelp.com/wp-content/qa/uploads/2012/01/TestLodge.jpg" alt="HTML tutorial" width="117" height="42" />
</a>
<a href="http://www.testlodge.com/"><b>TestLodge - Online test case management tool</b></a> - Web based test case management software allowing you to manage your test plans, requirements, test cases and test runs with ease.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.softwaretestinghelp.com/sql-injection-%e2%80%93-how-to-test-application-for-sql-injection-attacks/feed/</wfw:commentRss>
		<slash:comments>70</slash:comments>
		</item>
		<item>
		<title>An approach for Security Testing of Web Applications</title>
		<link>http://www.softwaretestinghelp.com/security-testing-of-web-applications/</link>
		<comments>http://www.softwaretestinghelp.com/security-testing-of-web-applications/#comments</comments>
		<pubDate>Mon, 17 Nov 2008 18:44:40 +0000</pubDate>
		<dc:creator>Vijay</dc:creator>
				<category><![CDATA[Security testing]]></category>
		<category><![CDATA[Web Testing]]></category>

		<guid isPermaLink="false">http://www.softwaretestinghelp.com/security-testing-of-web-applications/</guid>
		<description><![CDATA[How to make sure your web application is secure before release? Web site security testing is important part of software testing life cycle like other functionality and performance testing. This article will guide you with different type of attacks on web applications and information on how to perform security testing on web applications.  <p>---------------------<br/>
I just wanted to thank you for subscribing to SoftwareTestingHelp.com. <b>This blog is a success because of you and your support. Here's to your success!</b><br/><br/>As always, I appreciate your valuable comments. <b>Visit below link to post your comment:</b><br/><b><a href="http://www.softwaretestinghelp.com/security-testing-of-web-applications/">An approach for Security Testing of Web Applications</a></b>
<br/><br/>Thank you so much!
---------------------<br/>
<b>Recommended:</b>
<a href="http://www.testlodge.com/">
<img src="http://www.softwaretestinghelp.com/wp-content/qa/uploads/2012/01/TestLodge.jpg" alt="HTML tutorial" width="117" height="42" />
</a>
<a href="http://www.testlodge.com/"><b>TestLodge - Online test case management tool</b></a> - Web based test case management software allowing you to manage your test plans, requirements, test cases and test runs with ease.</p>
]]></description>
			<content:encoded><![CDATA[<p><em>This is guest article by &#8220;Inder P Singh&#8221;</em></p>
<p><strong>Introduction</strong></p>
<p>As more and more vital data is stored in web applications and the number of transactions on the web increases, proper security testing of web applications is becoming very important. Security testing is the process that determines that <strong>confidential data stays confidential</strong> (i.e. it is not exposed to individuals/ entities for which it is not meant) and users can perform only those tasks that they are authorized to perform (e.g. a user should not be able to deny the functionality of the web site to other users, a user should not be able to change the functionality of the web application in an unintended way etc.).</p>
<p><strong>Some key terms used in security testing</strong></p>
<p>Before we go further, it will be useful to be aware of a few terms that are frequently used in web application security testing:</p>
<p><strong>What is &#8220;Vulnerability&#8221;?</strong><br />
This is a weakness in the web application. The cause of such a “weakness” can be bugs in the application, an injection (SQL/ script code) or the presence of viruses.<br />
<span id="more-333"></span><br />
<strong>What is &#8220;URL manipulation&#8221;?</strong><br />
Some web applications communicate additional information between the client (browser) and the server in the URL. Changing some information in the URL may sometimes lead to unintended behavior by the server.</p>
<p><strong>What is &#8220;SQL injection&#8221;?</strong><br />
This is the process of inserting SQL statements through the web application user interface into some query that is then executed by the server.</p>
<p><strong>What is &#8220;XSS (Cross Site Scripting)&#8221;?</strong><br />
When a user inserts HTML/ client-side script in the user interface of a web application and this insertion is visible to other users, it is called XSS.</p>
<p><strong>What is &#8220;Spoofing&#8221;?</strong><br />
The creation of hoax look-alike websites or emails is called spoofing.<br />
<strong>Security testing approach</strong>:</p>
<p>In order to perform a useful security test of a web application, the security tester should have good knowledge of the HTTP protocol. It is important to have an understanding of how the client (browser) and the server communicate using HTTP. Additionally, the tester should at least know the basics of SQL injection and XSS. Hopefully, the number of security defects present in the web application will not be high. However, being able to accurately describe the security defects with all the required details to all concerned will definitely help.</p>
<p><strong>1. Password cracking:</strong></p>
<p>The security testing on a web application can be kicked off by “password cracking”. In order to log in to the private areas of the application, one can either guess a username/ password or use some password cracker tool for the same. Lists of common usernames and passwords are available along with open source password crackers. If the web application does not enforce a complex password (e.g. with alphabets, number and special characters, with at least a required number of characters), it may not take very long to crack the username and password.</p>
<p>If username or password is stored in cookies without encrypting, attacker can use different methods to steal the cookies and then information stored in the cookies like username and password.</p>
<p>For more details see article on “<a href="http://www.softwaretestinghelp.com/website-cookie-testing-test-cases/" title="Website cookie testing">Website cookie testing</a>”.</p>
<p><strong>2. URL manipulation through HTTP GET methods:</strong></p>
<p>The tester should check if the application passes important information in the querystring. This happens when the application uses the HTTP GET method to pass information between the client and the server. The information is passed in parameters in the querystring. The tester can modify a parameter value in the querystring to check if the server accepts it.</p>
<p>Via HTTP GET request user information is passed to server for authentication or fetching data. Attacker can manipulate every input variable passed from this GET request to server in order to get the required information or to corrupt the data. In such conditions any unusual behavior by application or web server is the doorway for the attacker to get into the application.</p>
<p><strong>3. SQL Injection:</strong></p>
<p>The next thing that should be checked is SQL injection. Entering a single quote (‘) in any textbox should be rejected by the application. Instead, if the tester encounters a database error, it means that the user input is inserted in some query which is then executed by the application. In such a case, the application is vulnerable to SQL injection.</p>
<p>SQL injection attacks are very critical as attacker can get vital information from server database. To check SQL injection entry points into your web application, find out code from your code base where direct MySQL queries are executed on database by accepting some user inputs.</p>
<p>If user input data is crafted in SQL queries to query the database, attacker can inject SQL statements or part of SQL statements as user inputs to extract vital information from database. Even if attacker is successful to crash the application, from the SQL query error shown on browser, attacker can get the information they are looking for. Special characters from user inputs should be handled/escaped properly in such cases.</p>
<p><strong>4. Cross Site Scripting (XSS):</strong></p>
<p>The tester should additionally check the web application for XSS (Cross site scripting). Any HTML e.g. &lt;HTML&gt; or any script e.g. &lt;SCRIPT&gt; should not be accepted by the application. If it is, the application can be prone to an attack by Cross Site Scripting.</p>
<p>Attacker can use this method to execute malicious script or URL on victim’s browser. Using cross-site scripting, attacker can use scripts like JavaScript to steal user cookies and information stored in the cookies.</p>
<p>Many web applications get some user information and pass this information in some variables from different pages.</p>
<p>E.g.: http://www.examplesite.com/index.php?userid=123&amp;query=xyz</p>
<p>Attacker can easily pass some malicious input or &lt;script&gt; as a ‘&amp;query’ parameter which can explore important user/server data on browser.</p>
<p><strong>Important:</strong> During security testing, the tester should be very careful not to modify any of the following:</p>
<ul>
<li> Configuration of the application or the server</li>
<li> Services running on the server</li>
<li> Existing user or customer data hosted by the application</li>
</ul>
<p>Additionally, a security test should be avoided on a production system.</p>
<p>The purpose of the security test is to discover the vulnerabilities of the web application so that the developers can then remove these vulnerabilities from the application and make the web application and data safe from unauthorized actions.</p>
<p>---------------------<br/>
I just wanted to thank you for subscribing to SoftwareTestingHelp.com. <b>This blog is a success because of you and your support. Here's to your success!</b><br/><br/>As always, I appreciate your valuable comments. <b>Visit below link to post your comment:</b><br/><b><a href="http://www.softwaretestinghelp.com/security-testing-of-web-applications/">An approach for Security Testing of Web Applications</a></b>
<br/><br/>Thank you so much!
---------------------<br/>
<b>Recommended:</b>
<a href="http://www.testlodge.com/">
<img src="http://www.softwaretestinghelp.com/wp-content/qa/uploads/2012/01/TestLodge.jpg" alt="HTML tutorial" width="117" height="42" />
</a>
<a href="http://www.testlodge.com/"><b>TestLodge - Online test case management tool</b></a> - Web based test case management software allowing you to manage your test plans, requirements, test cases and test runs with ease.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.softwaretestinghelp.com/security-testing-of-web-applications/feed/</wfw:commentRss>
		<slash:comments>134</slash:comments>
		</item>
	</channel>
</rss>

