Top 10 Most Common Web Security Vulnerabilities
For all small and large companies now are concert about the security of web, it has the main priority of each company. According to my experience as I work as an IT security professional. I have realized much time again and again that the world of time is very unclear and opaque.
An actual approach for IT security must be defined in an active and self-justifying way. This article is focus on most common and important web security drawback. Also explain that how we prevent from this. We discuss the top 10 web vulnerabilities recognized by the open web application security project (OWASP), this is an international and non-profit organization, aims to improve the security of software all over the world.
A little web security primer before we start – authentication and authorization
We meet different IT professionals and programmer but I always confused about the difference between the authorization and authentication. So before starting clear these concepts of two terms.
• Authentication: Verifying that a person is a precise user, so he/she has correctly provided their security credentials like password, answers to security questions, fingerprint scan and etc.
• Authorization: Confirming that a particular user has access to a particular resource or also approved permission to perform a certain action.
In another way, authentication is defined who an entity is, but actually authorization is explain what a given entity can do.
Common Mistake #1: Injection flaws (Web Security Vulnerabilities)
Injection flaw is occurring when an untrusted input is scan. This actually happen when you transfer data from the SQL which is unclear or damage to the browser, to the LDAP server or nay other location. When the attacker can hit these commands which suddenly cause loss of data and capture the client browser information.
So if you received any file from the untrusted source then must first filter it. It is suggested from the whitelist, never used a blacklist because different antivirus are the example of failure of blacklist.
Prevention: The good thing is that defending from injection is easy, just a matter to filter the input that you think that input is not trusted. But the worst side is that now you will be required to filter all input properly.
For example a system with thousand inputs, can successfully scan the 999 is not enough, still there is one input to filter may be this single input field can damage your program or system. This is not good idea to put one query into another query.
All known that filtering is hard to done but filtering is prove the work correct and very carefully inspected.
Common Mistake #2: Broken Authentication (Web Security Vulnerabilities)
This mistake is a bunch of different problem that may happen during broken authentication,
Supposing that someone still wants to roll their own authentication code, what are you thinking? I advise against it. It is extremely hard to get right, and there are a countless of possible drawbacks, just to mention a few:
1. The URL may contain the session id and leak it to someone else.
2. The passwords might not be encrypted.
3. The session ids may be easily predictable.
4. Session complex might be possible.
5. Session may be hijack possibly.
Prevention: A very simple way to secure this vulnerability is to use a frame work. This way you can roll your own code.
Common Mistake #3: Cross Site Scripting (XSS) (Web Security Vulnerabilities)
Prevention: For this there is an easy security solution, do not back the HTML tags to the client. This is a way to protect against HTML injection
Common Mistake #4: Insecure Direct Object References (Web Security Vulnerabilities)
This is a standard case of trusting user input and paying them a price as a result for security vulnerability. A direct object reference to an internal object such as a file or database key is unprotected to the user. The hacker will easily give a reference and authorization is broken, the attacker can entree or do anything that they want from.
A common vulnerability example is a password reset option that trusts on user input to control whose password we are resetting. After clicking the valid URL, an attacker can just modify the username field in the URL like “admin”.
Prevention: Go through the user authorization reliably and correctly. Session variable is suited for that purpose.
Common Mistake #5: Security misconfiguration (Web Security Vulnerabilities)
For my point of view and experience web applications that has misconfigure are more than the correct configurations. This is because:
1. Running the application along with debug enabled its production.
2. Allow the directory list on the server, which leak your confidential information.
3. Running outdated software.
4. Having unnecessary services running on the machine.
5. Not changing default keys and passwords.
6. Revealing error handling information to the attackers, such as stack traces.
Prevention: should have a good “build and deploy” planning and method, perform different tests on deployment.
Common Mistake #6: Missing function level access control (Web Security Vulnerabilities)
This mistake is occurring just due to authorization failure. Which mean when any function will call on the server correct authorization was not performed? A hacker can always copy to the “hidden” functionality and will not be discouraged by the Truth that the UI doesn’t make this functionality easy accessible.
Prevention: On the server side, authorization must do. Yes, always. No exceptions or vulnerabilities will result in serious problems.
Common Mistake #7: Cross Site Request Forgery (CSRF) (Web Security Vulnerabilities)
This is a nice example of an attack where the browser is fooled by some other party into mishandling its consultant. A 3rd party site, for example, can make the user’s browser misuse it’s authority to do something for the attacker.
In the case of CSRF, a 3rd party site generates requests to Assignment Writers the target site using your browser with your session. If you are logged in on one tab on homepage, and they are helpless to this attack, another tab can make your browser misuse your credentials on the attacker’s behalf.
Prevention: Store a secret symbolic form field which is far away from the 3rd party site.