bsc-projects-13.html
changeset 243 d24749d0282d
parent 242 ea17aab7cea6
child 244 ead1dd6818f3
equal deleted inserted replaced
242:ea17aab7cea6 243:d24749d0282d
    67   in <A HREF="http://www.ruby-lang.org/en/">Ruby</A> (probably also other mainstream programming languages) the 
    67   in <A HREF="http://www.ruby-lang.org/en/">Ruby</A> (probably also other mainstream programming languages) the 
    68   innocently looking regular expression <code>a?{28}a{28}</code> and match it, say, against the string 
    68   innocently looking regular expression <code>a?{28}a{28}</code> and match it, say, against the string 
    69   <code>aaaaaaaaaaaaaaaaaaaaaaaaaaaa</code> (that is 28 <code>a</code>s), you will soon notice that your CPU usage goes to 100%. In fact,
    69   <code>aaaaaaaaaaaaaaaaaaaaaaaaaaaa</code> (that is 28 <code>a</code>s), you will soon notice that your CPU usage goes to 100%. In fact,
    70   Python and Ruby need approximately 30 seconds of hard work for matching this string. You can try it for yourself:
    70   Python and Ruby need approximately 30 seconds of hard work for matching this string. You can try it for yourself:
    71   <A HREF="http://www.dcs.kcl.ac.uk/staff/urbanc/cgi-bin/repos.cgi/afl-material/raw-file/tip/progs/re.py">re.py</A> (Python version) and 
    71   <A HREF="http://www.dcs.kcl.ac.uk/staff/urbanc/cgi-bin/repos.cgi/afl-material/raw-file/tip/progs/re.py">re.py</A> (Python version) and 
    72   <A HREF="http://www.dcs.kcl.ac.uk/staff/urbanc/cgi-bin/repos.cgi/afl-material/raw-file/tip/progs/re-internal.rb">re.rb</A> 
    72   <A HREF="http://www.dcs.kcl.ac.uk/staff/urbanc/cgi-bin/repos.cgi/afl-material/raw-file/tip/progs/re.rb">re.rb</A> 
    73   (Ruby version). You can imagine an attacker
    73   (Ruby version). You can imagine an attacker
    74   mounting a nice <A HREF="http://en.wikipedia.org/wiki/Denial-of-service_attack">DoS attack</A> against 
    74   mounting a nice <A HREF="http://en.wikipedia.org/wiki/Denial-of-service_attack">DoS attack</A> against 
    75   your program if it contains such an &ldquo;evil&rdquo; regular expression. Actually 
    75   your program if it contains such an &ldquo;evil&rdquo; regular expression. Actually 
    76   <A HREF="http://www.scala-lang.org/">Scala</A> (and also Java) are almost immune from such
    76   <A HREF="http://www.scala-lang.org/">Scala</A> (and also Java) are almost immune from such
    77   attacks as they can deal with strings of up to 4,300 <code>a</code>s in less than a second. But if you scale
    77   attacks as they can deal with strings of up to 4,300 <code>a</code>s in less than a second. But if you scale
   551 </TD>
   551 </TD>
   552 </TR>
   552 </TR>
   553 </TABLE>
   553 </TABLE>
   554 
   554 
   555 <P>
   555 <P>
   556 <!-- hhmts start --> Last modified: Mon Oct  7 15:44:19 BST 2013 <!-- hhmts end -->
   556 <!-- hhmts start --> Last modified: Mon Oct  7 15:45:18 BST 2013 <!-- hhmts end -->
   557 <a href="http://validator.w3.org/check/referer">[Validate this page.]</a>
   557 <a href="http://validator.w3.org/check/referer">[Validate this page.]</a>
   558 </BODY>
   558 </BODY>
   559 </HTML>
   559 </HTML>