Re: Source Code Protection

From: Murray (forums_at_HAHAgreat-web-sights.com)
Date: 08/26/04


Date: Thu, 26 Aug 2004 14:57:01 -0400

I got it. It's in there ---> <script src="nosource.asp">

8)

-- 
Murray
"MD Websunlimited" <none@none.com> wrote in message 
news:um$6Xg5iEHA.3476@tk2msftngp13.phx.gbl...
> Here is your protected source page:
>
> http://www.websunlimited.com/samples/no_source_view.htm
>
>
> -- 
> Mike -- FrontPage MVP '97-'02
> J-Bots 2004 Released Special Pricing
> http://www.websunlimited.com
> FrontPage Add-ins Since '97 FP 2003 / 2002 / 2000 Compatible
>
>
> "MD Websunlimited" <none@none.com> wrote in message 
> news:%23$9i284iEHA.1048@tk2msftngp13.phx.gbl...
>> You bet!
>>
>> -- 
>> Mike -- FrontPage MVP '97-'02
>> J-Bots 2004 Released Special Pricing
>> http://www.websunlimited.com
>> FrontPage Add-ins Since '97 FP 2003 / 2002 / 2000 Compatible
>>
>> "Kevin Spencer" <kspencer@takempis.com> wrote in message 
>> news:eGgeD24iEHA.2660@TK2MSFTNGP15.phx.gbl...
>> > Challenge me, Mike! ;-)
>> >
>> > -- 
>> > HTH,
>> > Kevin Spencer
>> > .Net Developer
>> > Microsoft MVP
>> > Big things are made up
>> > of lots of little things.
>> >
>> > "MD Websunlimited" <none@none.com> wrote in message
>> > news:#wF7uu4iEHA.2340@TK2MSFTNGP11.phx.gbl...
>> > > Kevin, Murry,
>> > >
>> > > Oops, I was in a hurry to set it up. Let me see what I did wrong.
>> > >
>> > > Like I said it can be time consuming.
>> > >
>> > > -- 
>> > > Mike -- FrontPage MVP '97-'02
>> > > J-Bots 2004 Released Special Pricing
>> > > http://www.websunlimited.com
>> > > FrontPage Add-ins Since '97 FP 2003 / 2002 / 2000 Compatible
>> > >
>> > > "Kevin Spencer" <kspencer@takempis.com> wrote in message
>> > news:%23DNiqU4iEHA.2412@TK2MSFTNGP15.phx.gbl...
>> > > > Hi Mike,
>> > > >
>> > > > Is this the protected script?
>> > > >
>> > > > [formcalc.asp]
>> > > >
>> > > > var token = ''; // holds the token found
>> > > > var prog = '';
>> > > > var progIndex = 0;
>> > > > var oForm;
>> > > > var places = 2;
>> > > > var prepend = 0;
>> > > > var DELIMITER = 1;
>> > > > var VARIABLE = 2;
>> > > > var NUMBER = 3;
>> > > > var TOKEN_SIZE = 32;
>> > > > var TRUE = -1;
>> > > > var FALSE = 0;
>> > > >
>> > > > function Expression(theForm,theExpression,Places,Prepend) {
>> > > >   places = Places;
>> > > >   prepend = Prepend;
>> > > >   progIndex = 0;
>> > > >   prog = theExpression;
>> > > >   oForm = theForm;
>> > > >   get_token();
>> > > >   if(!token) {
>> > > >     serror(2);
>> > > >   }
>> > > >
>> > > >   Level1();
>> > > > }
>> > > >
>> > > > // process an assignment statement
>> > > > function Level1()
>> > > > {
>> > > >
>> > > >  var slot;
>> > > >  var ttok_type;
>> > > >  var temp_token;
>> > > >  var result = 0.0;
>> > > >
>> > > >
>> > > >  if(tok_type == VARIABLE) {
>> > > >   // save old token
>> > > >   temp_token = token;
>> > > >   ttok_type = tok_type;
>> > > >   if(typeof oForm[token] != "undefined" ) {
>> > > >    slot = oForm[token];
>> > > >   } else {
>> > > >    serror(3);
>> > > >   }
>> > > >   get_token();
>> > > >   if(token != '=') {
>> > > >    putback();
>> > > >    token = temp_token;
>> > > >    tok_type = ttok_type;
>> > > >   } else {
>> > > >    get_token();
>> > > >    result = Level2();
>> > > >    slot.value = round(result,places);
>> > > >          return;
>> > > >   }
>> > > >  }
>> > > >  result = Level2();
>> > > >  return result;
>> > > > }
>> > > >
>> > > > function Level2()
>> > > > {
>> > > >  var op = '';
>> > > >  var hold = 0;
>> > > >  var result = 0;
>> > > >
>> > > >  result = Level3();
>> > > >  while((op = token) == '+' || op == '-') {
>> > > >   get_token();
>> > > >   hold = Level3();
>> > > >   result = arith(op,result, hold);
>> > > >  }
>> > > >  return result;
>> > > > }
>> > > >
>> > > > // multiply  or divide two terms
>> > > > function Level3()
>> > > > {
>> > > >  var op = '';
>> > > >  var hold = 0;
>> > > >  var result = 0.0;
>> > > >  result = Level4();
>> > > >  while((op = token) == '*' || op == '/') {
>> > > >   get_token();
>> > > >   hold = Level4();
>> > > >   result = arith(op,result, hold);
>> > > >  }
>> > > >  return result;
>> > > > }
>> > > >
>> > > > // process integer expoent
>> > > > function Level4()
>> > > > {
>> > > >  var hold = 0;
>> > > >  var result = 0;
>> > > >
>> > > >  result = Level5();
>> > > >  if((token) == '^') {
>> > > >   get_token();
>> > > >   hold = Level4();
>> > > >   result = arith('^',result, hold);
>> > > >  }
>> > > >  return result;
>> > > > }
>> > > >
>> > > > // unary + or -
>> > > > function Level5()
>> > > > {
>> > > >  var op = '';
>> > > >  var result = 0.0;
>> > > >
>> > > >  op = 0;
>> > > >
>> > > >  if((tok_type==DELIMITER) && token == '+' || token == '-') {
>> > > >   op = token;
>> > > >   get_token();
>> > > >  }
>> > > >   result = Level6();
>> > > >   if(op)
>> > > >    result = unary(op,result);
>> > > >   return result;
>> > > > }
>> > > >
>> > > > // process parenthesized expression
>> > > > function Level6()
>> > > > {
>> > > >  var result = 0.0;
>> > > >
>> > > >  if((token == '(') && (tok_type == DELIMITER)) {
>> > > >   get_token();
>> > > >   result = Level1();
>> > > >   if(token != ')')
>> > > >    serror(1);
>> > > >   get_token();
>> > > >  } else
>> > > >   result = primitive();
>> > > >  return result
>> > > >
>> > > > }
>> > > >
>> > > > function primitive()
>> > > > {
>> > > >  var slot = 0;
>> > > >  var result = 0.0;
>> > > >  var sValue = '';
>> > > >  var i = 0;
>> > > >  switch(tok_type) {
>> > > >  case VARIABLE :
>> > > >   if(typeof oForm[token] == "undefined")
>> > > >    result = 0.0;
>> > > >   else {
>> > > >    switch (oForm[token].tagName) {
>> > > >    case 'INPUT' :
>> > > >      sValue = oForm[token].value;
>> > > >      while(sValue.charAt(i) == ' ') ++i;
>> > > >      if(sValue.charAt(i) == '$') ++i;
>> > > >      sValue = sValue.substr(i,sValue.length-i);
>> > > >        if (!isNumber(sValue)) serror(4);
>> > > >        result = parseFloat(sValue);
>> > > >        if (isNaN(result)) result = 0;
>> > > >        break;
>> > > >    case 'SELECT' :
>> > > >      sValue = 
>> > > > oForm[token].options[oForm[token].selectedIndex].value;
>> > > >      while(sValue.charAt(i) == ' ') ++i;
>> > > >      if(sValue.charAt(i) == '$') ++i;
>> > > >      sValue = sValue.substr(i,sValue.length-i);
>> > > >      if (!isNumber(sValue)) serror(0);
>> > > >      result = parseFloat(sValue);
>> > > >         if (isNaN(result)) result = 0;
>> > > >      break;
>> > > >    default:
>> > > >      if( oForm[token].length > 0 ) {
>> > > >        for(i=0; i < oForm[token].length; i++) {
>> > > >         if(oForm[token][i].checked) {
>> > > >         sValue = oForm[token][i].value;
>> > > >         while(sValue.charAt(i) == ' ') ++i;
>> > > >         if(sValue.charAt(i) == '$') ++i;
>> > > >             sValue = sValue.substr(i,sValue.length-i);
>> > > >       if (!isNumber(sValue)) serror(4);
>> > > >         isNaN(parseFloat(sValue)) ? result += 0 : result +=
>> > > > parseFloat(sValue);
>> > > >         var sType = oForm[token][i].type.toLowerCase();
>> > > >         sType = sType.toLowerCase();
>> > > >         if (sType == 'radio') break;
>> > > >        }
>> > > >       }
>> > > >      }
>> > > >      break;
>> > > >    }
>> > > >   }
>> > > >   get_token();
>> > > >   return result;
>> > > >  case NUMBER:
>> > > >   result = parseFloat(token);
>> > > >   get_token();
>> > > >   return result;
>> > > >  default:
>> > > >   return result;
>> > > >  }
>> > > > }
>> > > >
>> > > > // do the math functions
>> > > > function arith(o,r,h)
>> > > > {
>> > > >  var t = 0.0;
>> > > >  var ex = 0.0;
>> > > >  switch(o) {
>> > > >  case '-':
>> > > >   r = r - h;
>> > > >   break;
>> > > >  case '+':
>> > > >   r = r + h;
>> > > >   break;
>> > > >  case '*':
>> > > >   r = r * h;
>> > > >   break;
>> > > >  case '/':
>> > > >   r = r / h;
>> > > >   break;
>> > > >  case '%':
>> > > >   t = ((r) / (h));
>> > > >   r = r - (t*(h));
>> > > >   break;
>> > > >  case '^':
>> > > >   ex =  r;
>> > > >   if(h==0) {
>> > > >    r = 1.0;
>> > > >    break;
>> > > >   }
>> > > >   for(t=h-1; t>0; --t) r = (r) * ex; // brute force
>> > > >   break;
>> > > >  }
>> > > >  return r;
>> > > > }
>> > > >
>> > > > function unary(o, r)
>> > > > {
>> > > >  if(o=='-') r = -(r);
>> > > >  return r;
>> > > > }
>> > > >
>> > > > // return a token to its resting place
>> > > > function putback()
>> > > > {
>> > > >  var t = '';
>> > > >
>> > > >  t = token;
>> > > >  for(;t;t++) progIndex--;
>> > > > }
>> > > >
>> > > > // find the value of a variable
>> > > > function find_var(s)
>> > > > {
>> > > >  var temp = '';
>> > > >
>> > > >  temp = oForm.s.value // if not defined then zero
>> > > >  if( temp == '' ) {
>> > > >   return(0.0);
>> > > >  }
>> > > >  return parseFloat(temp);
>> > > > }
>> > > >
>> > > > function serror(error)
>> > > > {
>> > > >
>> > > >  var e = new Array;
>> > > >
>> > > >  e[0] = "Syntax error";
>> > > >  e[1] =  "Unbalanced parentheses";
>> > > >  e[2] =  "no expression present";
>> > > >  e[3] =  "Form field does not exist " + token;
>> > > >  e[4] =  "Not a number"
>> > > >
>> > > >  alert(e[error] + ' - ' + token);
>> > > >
>> > > > }
>> > > >
>> > > > function get_token()
>> > > > {
>> > > >  var temp = '';
>> > > >  tok_type =  0;
>> > > >
>> > > >  while(prog.charAt(progIndex) == ' ') ++progIndex; // skip spaces
>> > > >  if(is_in(prog.charAt(progIndex), "+-*/%^=()")) {
>> > > >   tok_type = DELIMITER;
>> > > >   temp += prog.charAt(progIndex++);
>> > > >  } else if(isAlpha(prog.charAt(progIndex)) || 
>> > > > prog.charAt(progIndex) ==
>> > '$')
>> > > > {
>> > > >   while(!isdelim(prog.charAt(progIndex))) temp +=
>> > prog.charAt(progIndex++);
>> > > >   tok_type = VARIABLE;
>> > > >  } else if (isDigit(prog.charAt(progIndex)) || 
>> > > > prog.charAt(progIndex) ==
>> > > > '.') {
>> > > >   while(!isdelim(prog.charAt(progIndex)))
>> > > >     temp += prog.charAt(progIndex++);
>> > > >   tok_type = NUMBER;
>> > > >  }
>> > > >  //--temp;
>> > > >  //while(isspace(temp)) --temp ;
>> > > >  token = temp;
>> > > >
>> > > > }
>> > > >
>> > > > // test for delimiter
>> > > > function isdelim(c)
>> > > > {
>> > > >  if(is_in(c, "+-/*%^=() ") || c=='\t' || c=='\r')
>> > > >   return 1;
>> > > >  return 0;
>> > > > }
>> > > >
>> > > > //test for alpha
>> > > > function isAlpha(c) {
>> > > >  var sAlpha = 
>> > > > 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz';
>> > > >  if (is_in(c,sAlpha)) return 1; else return 0;
>> > > > }
>> > > >
>> > > > function isDigit(c) {
>> > > >  var Digits = '0123456789';
>> > > >  if (is_in(c,Digits))  return 1; else return 0;
>> > > > }
>> > > >
>> > > > function isNumber(s) {
>> > > >  var dec = 0;
>> > > >  var i = 0;
>> > > >  if(s.charAt(i) == '-' || s.charAt(i) == '+') ++i;
>> > > >  for(i; i<s.length; i++) {
>> > > >   if(!isDigit(s.charAt(i))) {
>> > > >    if (s.charAt(i) != '.' || dec )
>> > > >     return 0;
>> > > >    else
>> > > >     ++dec;
>> > > >   }
>> > > >  }
>> > > >  return 1;
>> > > > }
>> > > >
>> > > > function is_in(ch,s)
>> > > > {
>> > > >  if(s.indexOf(ch) > -1)  return 1; else return 0;
>> > > > }
>> > > >
>> > > > function round(number,places) {
>> > > >     number = 
>> > > > Math.round(number*Math.pow(10,places))/Math.pow(10,places);
>> > > >     number += '';
>> > > >     var x = number.lastIndexOf('.');
>> > > >  if (x == -1 && places > 0) { number += '.'; x = 
>> > > > number.length -1; }
>> > > >  for ( i = ((number.length-1) - x); i < places; i++) number += '0';
>> > > >     return prepend ? '$' + number : number;
>> > > > }
>> > > >
>> > > >
>> > > > -- 
>> > > > HTH,
>> > > > Kevin Spencer
>> > > > .Net Developer
>> > > > Microsoft MVP
>> > > > Big things are made up
>> > > > of lots of little things.
>> > > >
>> > > > "MD Websunlimited" <none@none.com> wrote in message
>> > > > news:uAbTqK3iEHA.704@TK2MSFTNGP12.phx.gbl...
>> > > > I disagree you can protect your source from the average consumer 
>> > > > that
>> > does
>> > > > not require a browser plugin or dongle.
>> > > >
>> > > > On the following page the implementation script for Form Calculator 
>> > > > is
>> > > > protected. The same can be done to protect the HTML of the web 
>> > > > page.
>> > > >
>> > > > http://www.websunlimited.com/order/Product/FormCalc/formcalc.htm
>> > > >
>> > > > -- 
>> > > > Mike -- FrontPage MVP '97-'02
>> > > > J-Bots 2004 Released Special Pricing
>> > > > http://www.websunlimited.com
>> > > > FrontPage Add-ins Since '97 FP 2003 / 2002 / 2000 Compatible
>> > > >
>> > > >
>> > > >
>> > > > "Murray" <forums@HAHAgreat-web-sights.com> wrote in message
>> > > > news:eEEs9K2iEHA.1204@TK2MSFTNGP15.phx.gbl...
>> > > > > > It is possible to protect HTML but very very time consuming.
>> > > > >
>> > > > > The only way I know of is to require the visitor to download and
>> > install a
>> > > > > browser plugin, or to use a hardware dongle.  In other words, 
>> > > > > there is
>> > no
>> > > > > practical way to do it, at least not in our use space.
>> > > > >
>> > > > > -- 
>> > > > > Murray
>> > > > >
>> > > > > "MD Websunlimited" <none@none.com> wrote in message
>> > > > > news:uYOJpt1iEHA.712@TK2MSFTNGP09.phx.gbl...
>> > > > > > ASP scripting is automatically protected.
>> > > > > >
>> > > > > > It is possible to protect HTML but very very time consuming.
>> > > > > >
>> > > > > > -- 
>> > > > > > Mike -- FrontPage MVP '97-'02
>> > > > > > J-Bots 2004 Released Special Pricing
>> > > > > > http://www.websunlimited.com
>> > > > > > FrontPage Add-ins Since '97 FP 2003 / 2002 / 2000 Compatible
>> > > > > >
>> > > > > > "Weaver" <warpigs@insightbb.com> wrote in message
>> > > > > > news:d2c601c48aae$db01d710$a601280a@phx.gbl...
>> > > > > >> How do I protect my source codes? ASP as well as HTML?
>> > > > > >>
>> > > > > >>
>> > > > > >
>> > > > > >
>> > > > >
>> > > > >
>> > > >
>> > > >
>> > >
>> > >
>> >
>> >
>>
>>
>
> 


Relevant Pages

  • Re: editing
    ... > to, all of a sudden, the FTP is not allowing my saved changes. ... >> Mike -- FrontPage MVP '97-'02 ... >> J-Bots 2004 102 Components For FP ...
    (microsoft.public.frontpage.addins)
  • Re: Logout Script
    ... Mike -- FrontPage MVP '97-'02 ... J-Bots 2004 Released Special Pricing ...
    (microsoft.public.frontpage.client)
  • Re: Tsunami Victims Fund +
    ... Mike -- FrontPage MVP '97-'02 ... J-Bots 2004 102 Components For FP ... My buddies and I at Soop are setting up a Portal to help victims families try to find loved ones. ...
    (microsoft.public.frontpage.client)
  • Re: conditional data generated by a form
    ... You'll need to program the conditional statements in ASP or some other scripting such as PHP. ... Mike -- FrontPage MVP '97-'02 ... J-Bots 2004 102 Components For FP ...
    (microsoft.public.frontpage.client)
  • Re: Error message System exception:Access Violation
    ... The most common is memory do you know which you experienced? ... Mike -- FrontPage MVP '97-'02 ... J-Bots 2004 102 Components For FP ...
    (microsoft.public.frontpage.client)

Loading