<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
		<id>https://wiki.owasp.org/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Deepnov</id>
		<title>OWASP - User contributions [en]</title>
		<link rel="self" type="application/atom+xml" href="https://wiki.owasp.org/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Deepnov"/>
		<link rel="alternate" type="text/html" href="https://wiki.owasp.org/index.php/Special:Contributions/Deepnov"/>
		<updated>2026-04-11T12:03:54Z</updated>
		<subtitle>User contributions</subtitle>
		<generator>MediaWiki 1.27.2</generator>

	<entry>
		<id>https://wiki.owasp.org/index.php?title=ClickOnce_Security&amp;diff=116308</id>
		<title>ClickOnce Security</title>
		<link rel="alternate" type="text/html" href="https://wiki.owasp.org/index.php?title=ClickOnce_Security&amp;diff=116308"/>
				<updated>2011-08-26T10:22:14Z</updated>
		
		<summary type="html">&lt;p&gt;Deepnov: Vulnerabilities in Microsoft's ClickOnce technology for client server applications written in .net&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;p&amp;gt;Microsoft's ClickOnce technology, which is quite similar to Java WebStart has a number of vulnerabilities&amp;amp;nbsp;and&amp;amp;nbsp;any ClickOnce client server application developed on dotnet technology&amp;amp;nbsp;can be completely compromised if appropriate security controls are not used.&amp;amp;nbsp;&lt;br /&gt;
&amp;lt;/p&amp;gt;&amp;lt;p&amp;gt;1. The&amp;amp;nbsp;ILDASM tool available within the .net framework&amp;amp;nbsp;can be used to disassemble the application client and any database related logic/info can be exposed to hackers.&lt;br /&gt;
&amp;lt;/p&amp;gt;&amp;lt;p&amp;gt;2. The Disassembled code can even leak encryption keys initialized inside the client code.&lt;br /&gt;
&amp;lt;/p&amp;gt;&amp;lt;p&amp;gt;3. The code can be reassembled back to DLLs and EXEs using the ILASM tool from the command line.&lt;br /&gt;
&amp;lt;/p&amp;gt;&amp;lt;p&amp;gt;4. Code signed by Authenticode can also be bypassed by intercepting the response data and removing the signature. (Please&amp;amp;nbsp;visit the link below)&lt;br /&gt;
&amp;lt;/p&amp;gt;&amp;lt;p&amp;gt;5. By cracking the client application, every possible security control implemented on the client can be broken. For eg: Authorization, Input Validation &amp;amp;amp; Cryptographic storage.&lt;br /&gt;
&amp;lt;/p&amp;gt;&amp;lt;p&amp;gt;&amp;amp;nbsp;&lt;br /&gt;
&amp;lt;/p&amp;gt;&amp;lt;p&amp;gt;Possible Mitigation controls include:&lt;br /&gt;
&amp;lt;/p&amp;gt;&amp;lt;p&amp;gt;1. Complete code obfuscation on the client side application to prevent easy tampering of Intermediate Language code.&lt;br /&gt;
&amp;lt;/p&amp;gt;&amp;lt;p&amp;gt;2. Sign all the client&amp;amp;nbsp;assemblies with a strong name. (Assembly loader can detect tampered assembly)&lt;br /&gt;
&amp;lt;/p&amp;gt;&amp;lt;p&amp;gt;3. Use Authenticode to sign the application.&lt;br /&gt;
&amp;lt;/p&amp;gt;&amp;lt;p&amp;gt;&amp;amp;nbsp;&lt;br /&gt;
&amp;lt;/p&amp;gt;&amp;lt;p&amp;gt;Please see the below link for Man-In-The-Middle vulnerabilities:&lt;br /&gt;
&amp;lt;/p&amp;gt;&amp;lt;p&amp;gt;http://www.securityfocus.com/archive/1/512450&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;/div&gt;</summary>
		<author><name>Deepnov</name></author>	</entry>

	<entry>
		<id>https://wiki.owasp.org/index.php?title=AJAX_ASPNET_Security&amp;diff=109783</id>
		<title>AJAX ASPNET Security</title>
		<link rel="alternate" type="text/html" href="https://wiki.owasp.org/index.php?title=AJAX_ASPNET_Security&amp;diff=109783"/>
				<updated>2011-04-28T12:42:48Z</updated>
		
		<summary type="html">&lt;p&gt;Deepnov: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Basically this will cover any attacks on web applications which use AJAX in the front end and communicates with the Asp.net server side scripts. &lt;br /&gt;
&lt;br /&gt;
The Following points should be taken into consideration when assessing such environments. &lt;br /&gt;
&lt;br /&gt;
*The Client side JavaScript code should not contain sensitive information, since they will be cached in most of the frameworks. &lt;br /&gt;
*The Server side pages which serve the AJAX request should be XSRF free. &lt;br /&gt;
*Page Authorization logic should be eliminated from the ajax code. &lt;br /&gt;
*Incase JSON is used, don't send critical business data in the JSON response. &lt;br /&gt;
*Some frameworks convert ajax methods from c# to javascript by setting the method attributes. Make sure the method is robust and has got minimal functionality. &lt;br /&gt;
*Do not use the server side ajax methods extensively as it will overload the handlers and can potentially cause a denial of service attack.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;/div&gt;</summary>
		<author><name>Deepnov</name></author>	</entry>

	<entry>
		<id>https://wiki.owasp.org/index.php?title=OWASP_AJAX_Security_Guidelines&amp;diff=84590</id>
		<title>OWASP AJAX Security Guidelines</title>
		<link rel="alternate" type="text/html" href="https://wiki.owasp.org/index.php?title=OWASP_AJAX_Security_Guidelines&amp;diff=84590"/>
				<updated>2010-06-07T14:58:01Z</updated>
		
		<summary type="html">&lt;p&gt;Deepnov: /* Avoid building JSON by hand, use an existing framework */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= AJAX Security Guidelines =&lt;br /&gt;
&lt;br /&gt;
There is a complete lack of guidelines for AJAX.  This document will provide a starting point for AJAX security and will hopefully be updated and expanded reasonably often to provide more detailed information about specific frameworks and technologies.&lt;br /&gt;
&lt;br /&gt;
== Client Side (Javascript) ==&lt;br /&gt;
&lt;br /&gt;
=== Use .innerText instead of .innerHtml ===&lt;br /&gt;
&lt;br /&gt;
The use of .innerText will prevent most XSS problems as it will automatically encode the text.  Only use innerHtml when you are displaying HTML.&lt;br /&gt;
&lt;br /&gt;
=== Don't use eval ===&lt;br /&gt;
&lt;br /&gt;
Eval is evil, never use it.  Needing to use eval usually indicates a problem in your design.&lt;br /&gt;
&lt;br /&gt;
=== Canonicalize data to consumer (read: encode before use) ===&lt;br /&gt;
&lt;br /&gt;
When using data to build HTML, script, CSS, XML, JSON, etc. make sure you take into account how that data must be presented in a literal sense to keep it's logical meaning.  Data should be properly encoded before used in this manor to prevent injection style issues, and to make sure the logical meaning is preserved.&lt;br /&gt;
&lt;br /&gt;
[[:Category:OWASP_Encoding_Project|Check out the OWASP Encoding Project.]]&lt;br /&gt;
&lt;br /&gt;
=== Don't rely on client logic for security ===&lt;br /&gt;
&lt;br /&gt;
Least ye have forgotten the user controls the client side logic.  I can use a number of browser plugging to set breakpoints, skip code, change values, etc.  Never rely on client logic.&lt;br /&gt;
&lt;br /&gt;
=== Don't rely on client business logic ===&lt;br /&gt;
&lt;br /&gt;
Just like the security one, make sure any interesting business rules/logic is duplicated on the server side less a user bypass needed logic and do something silly, or worse, costly.&lt;br /&gt;
&lt;br /&gt;
=== Avoid writing serialization code ===&lt;br /&gt;
&lt;br /&gt;
This is hard and even a small mistake can cause large security issues.  There are already a lot of frameworks to provide this functionality.  Take a look at the [http://www.json.org/ JSON page] for links.&lt;br /&gt;
&lt;br /&gt;
=== Avoid building XML dynamically ===&lt;br /&gt;
&lt;br /&gt;
Just like building HTML or SQL you will cause XML injection bugs, so stay way from this or at least use an encoding library to make attributes and element data safe.&lt;br /&gt;
&lt;br /&gt;
[[:Category:OWASP_Encoding_Project|Check out the OWASP Encoding Project.]]&lt;br /&gt;
&lt;br /&gt;
=== Never transmit secrets to the client ===&lt;br /&gt;
&lt;br /&gt;
Anything the client knows the user will also know, so keep all that secret stuff on the server please.&lt;br /&gt;
&lt;br /&gt;
=== Don't perform encryption in client side code ===&lt;br /&gt;
&lt;br /&gt;
Use SSL and encrypt on the server!&lt;br /&gt;
&lt;br /&gt;
=== Don't perform security impacting logic on client side ===&lt;br /&gt;
&lt;br /&gt;
This is the overall one that gets me out of trouble in case I missed something :) &lt;br /&gt;
&lt;br /&gt;
== JSON ==&lt;br /&gt;
&lt;br /&gt;
=== Never send JSON via Querystring ===&lt;br /&gt;
&lt;br /&gt;
Sending JSON over a querystring would typically cause a cross-site scripting vulnerability as JSON strings are eval'd by the Javascript.  JSON content should always come from a trusted source as the content body.&lt;br /&gt;
&lt;br /&gt;
=== Always return JSON with an Object on the outside ===&lt;br /&gt;
&lt;br /&gt;
Always have the outside primitive be an object for JSON strings.  This will help mitigate so called &amp;quot;JavaScript Hijacking&amp;quot; as talked about in [http://www.fortifysoftware.com/servlet/downloads/public/JavaScript_Hijacking.pdf this paper].&lt;br /&gt;
&lt;br /&gt;
'''Explotable:'''&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
[{&amp;quot;object&amp;quot;: &amp;quot;inside an array&amp;quot;}]&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Not exploitable:'''&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
{&amp;quot;object&amp;quot;: &amp;quot;not inside an array&amp;quot;}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Also not exploitable:'''&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
{&amp;quot;result&amp;quot;: [{&amp;quot;object&amp;quot;: &amp;quot;inside an array&amp;quot;}]}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== ASP.NET ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Avoid writing serialization code. Remember ref vs. value types! ===&lt;br /&gt;
&lt;br /&gt;
Writing serialization code in .NET seems not to hard and yet everyone gets it wrong.  Look for an existing library that has been reviewed.  I'll post more on that as I eval them.&lt;br /&gt;
&lt;br /&gt;
=== Services can be called by users directly ===&lt;br /&gt;
&lt;br /&gt;
Even though you only expect your AJAX client side code to call those services the users can too.  Make sure you validate inputs and treat them like they are under user control (because they are!).&lt;br /&gt;
&lt;br /&gt;
=== Web service calls are not schema verified ===&lt;br /&gt;
&lt;br /&gt;
You need to use a 3rd party library to validate web services. &lt;br /&gt;
&lt;br /&gt;
[[:.NET_Web_Service_Validation|Check out OWASP .NET Web Service Validation.]]&lt;br /&gt;
&lt;br /&gt;
=== Avoid building XML by hand, use the framework ===&lt;br /&gt;
&lt;br /&gt;
Use the framework and be safe, do it by hand and have security issues.  Simple.&lt;br /&gt;
&lt;br /&gt;
=== Avoid building JSON by hand, use an existing framework  ===&lt;br /&gt;
&lt;br /&gt;
This is to hard to get right. Use existing code for this. Check out the JSON site for information. &lt;br /&gt;
&lt;br /&gt;
A guide for building a secure AJAX service layer can be found [http://msdn.microsoft.com/en-us/magazine/cc793961.aspx here].&lt;br /&gt;
&lt;br /&gt;
== Java ==&lt;br /&gt;
&lt;br /&gt;
Coming soon....maybe...&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:OWASP AJAX Security Project]]&lt;br /&gt;
[[Category:AJAX]]&lt;/div&gt;</summary>
		<author><name>Deepnov</name></author>	</entry>

	<entry>
		<id>https://wiki.owasp.org/index.php?title=AJAX_ASPNET_Security&amp;diff=28072</id>
		<title>AJAX ASPNET Security</title>
		<link rel="alternate" type="text/html" href="https://wiki.owasp.org/index.php?title=AJAX_ASPNET_Security&amp;diff=28072"/>
				<updated>2008-04-15T15:32:12Z</updated>
		
		<summary type="html">&lt;p&gt;Deepnov: New page: Coming Soon...&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Coming Soon...&lt;/div&gt;</summary>
		<author><name>Deepnov</name></author>	</entry>

	</feed>