<?xml version="1.0" encoding="UTF-8" ?>
<?xml-stylesheet type="text/xsl" href="https://www.dotnetzone.gr:443/cs/utility/FeedStylesheets/rss.xsl" media="screen"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:wfw="http://wellformedweb.org/CommentAPI/"><channel><title>Πρώτα Βήματα - Web Development</title><link>https://www.dotnetzone.gr:443/cs/forums/75/ShowForum.aspx</link><description>Ολα τα θέματα που σας απασχολούν σχετικά με ASP, ASP.NET αν τώρα επιχειρείτε να φτιάξετε την πρώτη σας σελίδα.</description><dc:language>el</dc:language><generator>CommunityServer 2.1 SP3 (Build: 20423.1)</generator><item><title>Απ: MS SQL Server + HTML Tags</title><link>https://www.dotnetzone.gr:443/cs/forums/thread/43581.aspx</link><pubDate>Mon, 21 Jul 2008 23:13:29 GMT</pubDate><guid isPermaLink="false">2622095e-976c-431a-859e-16783ec7ecd7:43581</guid><dc:creator>epp1123</dc:creator><slash:comments>0</slash:comments><comments>https://www.dotnetzone.gr:443/cs/forums/thread/43581.aspx</comments><wfw:commentRss>https://www.dotnetzone.gr:443/cs/forums/commentrss.aspx?SectionID=75&amp;PostID=43581</wfw:commentRss><description>Ευχαριστώ για τις απαντήσεις σας, Όλα αυτά που είπατε σωστά.&lt;br&gt;&lt;br&gt;Δεν το αμελώ το inject, απλά πειρατίζομαι με κάποια πράγματα. Όταν έρθει η στιγμή, θα μπούνε οι παράμετροι, και πάλι ευχαριστώ&lt;br&gt;</description></item><item><title>Απ: MS SQL Server + HTML Tags</title><link>https://www.dotnetzone.gr:443/cs/forums/thread/43579.aspx</link><pubDate>Mon, 21 Jul 2008 23:06:22 GMT</pubDate><guid isPermaLink="false">2622095e-976c-431a-859e-16783ec7ecd7:43579</guid><dc:creator>Παναγιώτης Καναβός</dc:creator><slash:comments>0</slash:comments><comments>https://www.dotnetzone.gr:443/cs/forums/thread/43579.aspx</comments><wfw:commentRss>https://www.dotnetzone.gr:443/cs/forums/commentrss.aspx?SectionID=75&amp;PostID=43579</wfw:commentRss><description>&lt;P&gt;Το Zend κάνει κάτι σαν παραμέτρους. Ουσιαστικά αντικαθιστά κάποιους parameter placeholders με τις τιμές των παραμέτρων μετά από σωστό escaping. Έτσι όμως χάνεται το πλεονέκτημα του pre-comiplation ενώ η ασφάλεια από SQL Injection εξαρτάται από το πόσο καλό escaping κάνει το Zend. &lt;/P&gt;</description></item><item><title>Απ: MS SQL Server + HTML Tags</title><link>https://www.dotnetzone.gr:443/cs/forums/thread/43577.aspx</link><pubDate>Mon, 21 Jul 2008 22:51:14 GMT</pubDate><guid isPermaLink="false">2622095e-976c-431a-859e-16783ec7ecd7:43577</guid><dc:creator>Panagiotis Kefalidis</dc:creator><slash:comments>0</slash:comments><comments>https://www.dotnetzone.gr:443/cs/forums/thread/43577.aspx</comments><wfw:commentRss>https://www.dotnetzone.gr:443/cs/forums/commentrss.aspx?SectionID=75&amp;PostID=43577</wfw:commentRss><description>Μπορούν, μπορούν.. &lt;img src="http://www.dotnetzone.gr/cs/emoticons/emotion-4.gif" alt="Stick out tongue" /&gt;&amp;nbsp;Να'ναι καλα&amp;nbsp;το Zend Framework που τους έλυσε τα χέρια λιγάκι..</description></item><item><title>Απ: MS SQL Server + HTML Tags</title><link>https://www.dotnetzone.gr:443/cs/forums/thread/43575.aspx</link><pubDate>Mon, 21 Jul 2008 22:41:54 GMT</pubDate><guid isPermaLink="false">2622095e-976c-431a-859e-16783ec7ecd7:43575</guid><dc:creator>Παναγιώτης Καναβός</dc:creator><slash:comments>0</slash:comments><comments>https://www.dotnetzone.gr:443/cs/forums/thread/43575.aspx</comments><wfw:commentRss>https://www.dotnetzone.gr:443/cs/forums/commentrss.aspx?SectionID=75&amp;PostID=43575</wfw:commentRss><description>ΦΤΟΥ! Με πρόλαβε ο Δημοσθένης! Να επαναλάβω κι εγώ όμως, ότι το SQL Injection είναι πολύ επικίνδυνο αλλά και πανεύκολο στην αντιμετώπιση όταν χρησιμοποιεί κανείς .NET. Τί να πουν και οι καημένοι οι προγραμματιστές PHP οι οποίοι δεν μπορούν να χρησιμοποιήσουν παραμέτρους ...</description></item><item><title>Απ: MS SQL Server + HTML Tags</title><link>https://www.dotnetzone.gr:443/cs/forums/thread/43574.aspx</link><pubDate>Mon, 21 Jul 2008 22:39:36 GMT</pubDate><guid isPermaLink="false">2622095e-976c-431a-859e-16783ec7ecd7:43574</guid><dc:creator>Παναγιώτης Καναβός</dc:creator><slash:comments>0</slash:comments><comments>https://www.dotnetzone.gr:443/cs/forums/thread/43574.aspx</comments><wfw:commentRss>https://www.dotnetzone.gr:443/cs/forums/commentrss.aspx?SectionID=75&amp;PostID=43574</wfw:commentRss><description>&lt;P&gt;Το λάθος που έκανες είναι ότι αντί να χρησιμοποιήσεις stored procedures ή parameterized queries δοκίμασες να φτιάξεις ένα SQL statement με string concatenation. Κάπου θα ξέχασες κανένα ' με αποτέλεσμα το &amp;lt; να μεταφραστεί ως "μικρότερο". &lt;/P&gt;
&lt;P&gt;Το πρόβλημα που έχεις όμως είναι ΠΟΛΥ ΠΙΟ ΣΟΒΑΡΟ από ένα ' που ξέχασες. Γράφοντας τέτοιο κώδικα επιτρέπεις σε οποιοδήποτε script kiddie να εκτελέσει κώδικα στην εφαρμογή σου, χρησιμοποιώντας &lt;A href="http://en.wikipedia.org/wiki/SQL_injection"&gt;SQL Injection&lt;/A&gt;. Ακόμα και αν βάλεις το ', κάποιος κακόβουλος χρήστης μπορεί να βάλει σε κάποιο text box εντολές οι οποίες θα εκτελεστούν από τον SQL server. Για παράδειγμα, θα μπορούσε να γράψει &lt;SPAN class=st0&gt;&lt;FONT color=#ff0000&gt;';DROP TABLE users; &lt;/FONT&gt;&lt;FONT color=#000000&gt;και να σου σβήσει ένα ολόκληρο πίνακα. Ή κάτι σαν &lt;/FONT&gt;&lt;FONT color=#ff0000&gt;'123;&lt;FONT face="Courier New"&gt;EXEC master..xp_cmdshell dir-- &lt;/FONT&gt;&lt;FONT color=#000000 face=Tahoma&gt;και να εκτελέσει οποιοδήποτε κώδικα θέλει με τα δικαιώματα του SQL Server account.&lt;/FONT&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN class=st0&gt;&lt;/SPAN&gt;Η λύση είναι απλούστατη. Αντί να χρησιμοποιήσεις string concatenation θα πρέπει να χρησιμοποιήσεις parameterized queries ή stored procedures στις οποίες θα περάσεις ως string parameters τις παραμέτρους σου. Με αυτό τον τρόπο δεν υπάρχει περίπτωση να μεταφραστεί ένα string ως SQL και εξαλείφεται ο κίνδυνος του SQL Injection. Επίσης αποφεύγεις λάθη σαν αυτό που αντιμετώπισες τώρα αλλά πετυχαίνεις και καλύτερες επιδόσεις επειδή ο SQL Server δεν χρειάζεται να ξανακάνει compile τις εντολές που του δίνεις. &lt;/P&gt;
&lt;P&gt;Το παράδειγμα του Wikipedia δείχνει πόσο εύκολο είναι να χρησιμοποιήσεις parameterized queries. Ο κώδικας που πρέπει να γράψεις είναι ο παρακάτω: &lt;/P&gt;
&lt;P&gt;&lt;SPAN style="FONT-WEIGHT:normal;FONT-SIZE:11px;COLOR:black;FONT-FAMILY:Courier New;BACKGROUND-COLOR:transparent;"&gt;&lt;SPAN style="FONT-WEIGHT:normal;FONT-SIZE:11px;COLOR:blue;FONT-FAMILY:Courier New;BACKGROUND-COLOR:transparent;"&gt;using&lt;/SPAN&gt; (SqlCommand myCommand &lt;SPAN style="FONT-WEIGHT:normal;FONT-SIZE:11px;COLOR:red;FONT-FAMILY:Courier New;BACKGROUND-COLOR:transparent;"&gt;=&lt;/SPAN&gt; &lt;SPAN style="FONT-WEIGHT:normal;FONT-SIZE:11px;COLOR:blue;FONT-FAMILY:Courier New;BACKGROUND-COLOR:transparent;"&gt;new&lt;/SPAN&gt; SqlCommand(&lt;SPAN style="FONT-WEIGHT:normal;FONT-SIZE:11px;COLOR:#666666;FONT-FAMILY:Courier New;BACKGROUND-COLOR:#e4e4e4;"&gt;"select * from Users where UserName=@username and Password=@password"&lt;/SPAN&gt;, myConnection))&lt;BR&gt;{ &lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;FONT style="BACKGROUND-COLOR:#ffff00;"&gt;myCommand.Parameters.AddWithValue(&lt;SPAN style="FONT-WEIGHT:normal;FONT-SIZE:11px;COLOR:#666666;FONT-FAMILY:Courier New;BACKGROUND-COLOR:#e4e4e4;"&gt;"@username"&lt;/SPAN&gt;, user);&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; myCommand.Parameters.AddWithValue(&lt;SPAN style="FONT-WEIGHT:normal;FONT-SIZE:11px;COLOR:#666666;FONT-FAMILY:Courier New;BACKGROUND-COLOR:#e4e4e4;"&gt;"@password"&lt;/SPAN&gt;, pass);&lt;BR&gt;&lt;/FONT&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; myConnection.Open();&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; SqlDataReader myReader &lt;SPAN style="FONT-WEIGHT:normal;FONT-SIZE:11px;COLOR:red;FONT-FAMILY:Courier New;BACKGROUND-COLOR:transparent;"&gt;=&lt;/SPAN&gt; myCommand.ExecuteReader())&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;...................&lt;BR&gt;}&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN style="FONT-WEIGHT:normal;FONT-SIZE:11px;COLOR:black;FONT-FAMILY:Courier New;BACKGROUND-COLOR:transparent;"&gt;&lt;FONT size=2 face=Tahoma&gt;Είναι σχεδόν ο ίδιος κώδικας που θα έγραφες για να φτιάξεις το statement με concatenation, μόνο που τώρα προσθέτεις και μία γραμμή ανά παράμετρο.&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;</description></item><item><title>Απ: MS SQL Server + HTML Tags</title><link>https://www.dotnetzone.gr:443/cs/forums/thread/43572.aspx</link><pubDate>Mon, 21 Jul 2008 22:24:05 GMT</pubDate><guid isPermaLink="false">2622095e-976c-431a-859e-16783ec7ecd7:43572</guid><dc:creator>epp1123</dc:creator><slash:comments>0</slash:comments><comments>https://www.dotnetzone.gr:443/cs/forums/thread/43572.aspx</comments><wfw:commentRss>https://www.dotnetzone.gr:443/cs/forums/commentrss.aspx?SectionID=75&amp;PostID=43572</wfw:commentRss><description>Το έλυσα τελικά. Το sql ερώτημα μου ήταν ως εξής:&lt;br&gt;&lt;br&gt;"UPDATE Customers SET " &amp;amp; Request.QueryString("Customers_Parameter") &amp;amp; "="&amp;nbsp; &amp;amp; Editor.Html &amp;amp; " WHERE (Customers_ID=" &amp;amp; Request.QueryString("Customers_ID") &amp;amp; ")"&lt;br&gt;&lt;br&gt;και όταν έμπαιναν τα δεδομένα είχα την εξής εικόνα&lt;br&gt;&lt;br&gt;UPDATE Customers SET [Όνομα Κολώνας] = &amp;lt;strong&amp;gt;hello&amp;lt;/strong&amp;gt; WHERE (Customers_ID= [Μία τιμή])&lt;br&gt;&lt;br&gt;Ύστερα έβαλα τα μονά τα αυτάκια, στο κείμενο που ήθελα να αποθηκεύσω και δουλεύει μία χαρά. Τώρα το ερώτημα μου είναι ως εξής: &lt;br&gt;&lt;br&gt;UPDATE Customers SET [Όνομα Κολώνας] = '&amp;lt;strong&amp;gt;hello&amp;lt;/strong&amp;gt;' WHERE (Customers_ID= [Μία τιμή])&lt;br&gt;&lt;br&gt;&lt;br&gt;Θα κρατήσω και την παραπάνω απάντηση ως συμβουλή. Ευχαριστώ&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;</description></item><item><title>Απ: MS SQL Server + HTML Tags</title><link>https://www.dotnetzone.gr:443/cs/forums/thread/43571.aspx</link><pubDate>Mon, 21 Jul 2008 22:21:28 GMT</pubDate><guid isPermaLink="false">2622095e-976c-431a-859e-16783ec7ecd7:43571</guid><dc:creator>dStellakis</dc:creator><slash:comments>0</slash:comments><comments>https://www.dotnetzone.gr:443/cs/forums/thread/43571.aspx</comments><wfw:commentRss>https://www.dotnetzone.gr:443/cs/forums/commentrss.aspx?SectionID=75&amp;PostID=43571</wfw:commentRss><description>&lt;P&gt;Το μηνύμα λάθους που παίρνεις&amp;nbsp;σημάνει ότι το SQL statement που φτιάχνεις για να ενημερώσεις την βάση δεδομένων σου είναι λανθασμένο.&lt;/P&gt;
&lt;P&gt;Το πιθανότερο είναι ότι το HTML κείμενο σου περιέχει ειδικούς χαρακτήρες, όπως το ' , ο οποίος δηλώνει το τέλος ενος SQL string.&lt;/P&gt;
&lt;P&gt;Δοκίμασε να αντικαταστήσεις τα μονά ' με δύο μονά ', ή ακόμα καλύτερα χρησιμοποίησε strored procedures ή parametarized sql statements που σου λύνουν τα προβλήματα του δυναμικού SQL και παράλληλα δεν εχουν και προβλήματα SQL injections.&lt;/P&gt;
&lt;P&gt;Για παράδειγμα, αν θέλεις να αποθηκεύσεις το HTML κείμενο στο πεδίο HTMLText του πίνακα Page, θα έγραφες αν χρησιμοποιούσες parametarized sql statements:&lt;/P&gt;&lt;FONT size=2&gt;&lt;FONT color=#2b91af size=2&gt;&lt;FONT color=#2b91af size=2&gt;&lt;FONT size=2&gt;
&lt;P&gt;&lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;&lt;FONT color=#0000ff size=2&gt;using&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt; (&lt;/FONT&gt;&lt;FONT color=#2b91af size=2&gt;&lt;FONT color=#2b91af size=2&gt;SqlConnection&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt; conn = &lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;&lt;FONT color=#0000ff size=2&gt;new&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt; &lt;/FONT&gt;&lt;FONT color=#2b91af size=2&gt;&lt;FONT color=#2b91af size=2&gt;SqlConnection&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt;(&lt;/FONT&gt;&lt;FONT color=#a31515 size=2&gt;&lt;FONT color=#a31515 size=2&gt;"connection string details..."&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt;))&lt;BR&gt;{&lt;BR&gt;conn.Open();&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT color=#0000ff size=2&gt;&lt;FONT color=#0000ff size=2&gt;using&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt; (&lt;/FONT&gt;&lt;FONT color=#2b91af size=2&gt;&lt;FONT color=#2b91af size=2&gt;SqlCommand&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt; comm = conn.CreateCommand())&lt;BR&gt;{&lt;BR&gt;comm.CommandText = &lt;/FONT&gt;&lt;FONT color=#a31515 size=2&gt;&lt;FONT color=#a31515 size=2&gt;"INSERT INTO Page(HTMLText) VALUES(@HTMLText)"&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt;;&lt;BR&gt;comm.Parameters.Add(&lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;&lt;FONT color=#0000ff size=2&gt;new&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt; &lt;/FONT&gt;&lt;FONT color=#2b91af size=2&gt;&lt;FONT color=#2b91af size=2&gt;SqlParameter&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt;(&lt;/FONT&gt;&lt;FONT color=#a31515 size=2&gt;&lt;FONT color=#a31515 size=2&gt;"@HTMLText"&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt;, &lt;/FONT&gt;&lt;FONT color=#a31515 size=2&gt;&lt;FONT color=#a31515 size=2&gt;"&amp;lt;html&amp;gt;&amp;lt;head&amp;gt;&amp;lt;/head&amp;gt;&amp;lt;body&amp;gt;....&amp;lt;/body&amp;gt;&amp;lt;/html&amp;gt;"&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt;));&lt;BR&gt;comm.ExecuteNonQuery();&lt;BR&gt;}&lt;/P&gt;
&lt;P&gt;conn.Close();&lt;BR&gt;}&lt;/P&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;
&lt;P&gt;&lt;FONT size=2&gt;&lt;FONT size=2&gt;&lt;FONT size=2&gt;Δημοσθένης Στελλάκης&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt;&lt;/P&gt;&lt;/FONT&gt;</description></item><item><title>Απ: MS SQL Server + HTML Tags</title><link>https://www.dotnetzone.gr:443/cs/forums/thread/43570.aspx</link><pubDate>Mon, 21 Jul 2008 22:16:56 GMT</pubDate><guid isPermaLink="false">2622095e-976c-431a-859e-16783ec7ecd7:43570</guid><dc:creator>manosB</dc:creator><slash:comments>0</slash:comments><comments>https://www.dotnetzone.gr:443/cs/forums/thread/43570.aspx</comments><wfw:commentRss>https://www.dotnetzone.gr:443/cs/forums/commentrss.aspx?SectionID=75&amp;PostID=43570</wfw:commentRss><description>Κάνε μας paste και λίγο κώδικα. Έτσι δεν μπορούμε να σε βοηθήσουμε.&lt;br&gt;</description></item><item><title>MS SQL Server + HTML Tags</title><link>https://www.dotnetzone.gr:443/cs/forums/thread/43569.aspx</link><pubDate>Mon, 21 Jul 2008 21:43:51 GMT</pubDate><guid isPermaLink="false">2622095e-976c-431a-859e-16783ec7ecd7:43569</guid><dc:creator>epp1123</dc:creator><slash:comments>0</slash:comments><comments>https://www.dotnetzone.gr:443/cs/forums/thread/43569.aspx</comments><wfw:commentRss>https://www.dotnetzone.gr:443/cs/forums/commentrss.aspx?SectionID=75&amp;PostID=43569</wfw:commentRss><description>Καλησπέρα, γίνεται να αποθηκεύσω ως string, κείμενο που περιέχει html tags??&lt;br&gt;&lt;br&gt;Λαμβάνω το εξής λάθος όταν εκτελείται το sql erotima :&lt;br&gt;&lt;br&gt;&lt;font size="1"&gt;&lt;span&gt;&lt;h2&gt; &lt;i&gt;Incorrect syntax near '&amp;lt;'.&lt;/i&gt; &lt;/h2&gt;&lt;/span&gt;&lt;/font&gt;

            &lt;font face="Arial, Helvetica, Geneva, SunSans-Regular, sans-serif " size="1"&gt;

            &lt;b&gt; Description: &lt;/b&gt;An
unhandled exception occurred during the execution of the current web
request. Please review the stack trace for more information about the
error and where it originated in the code. &lt;br&gt;&lt;br&gt;

            &lt;b&gt; Exception Details: &lt;/b&gt;System.Data.SqlClient.SqlException: Incorrect syntax near '&amp;lt;'.&lt;/font&gt;&lt;br&gt;&lt;br&gt;Μάλλον χτυπάει όταν βλέπει το πρώτο tag. &lt;br&gt;</description></item></channel></rss>