Monday, January 7, 2013

how to disable SSL2 and weak cipher suites in apache

http://www.sslshopper.com/article-how-to-disable-weak-ciphers-and-ssl-2.0-in-apache.html

First, verify that you have weak ciphers or SSL 2.0 enabled. You can do this using a local OpenSSL command or by just entering your public domain name in at https://www.ssllabs.com/ssldb/index.html

Friday, January 4, 2013

Sex & Zend: Zend framework form input fields validator

zend framework form add validator




http://framework.zend.com/manual/1.12/en/zend.form.elements.html

->addValidator('Regex'falsearray('/^[a-z0-9]{6,}$/i'))




If failing a particular validation should prevent later validators from firing, pass booleanTRUE as the second parameter:
  1. $element->addValidator('alnum'true);
If you are using a string name to add a validator, and the validator class accepts arguments to the constructor, you may pass these to the third parameter ofaddValidator() as an array:
  1. $element->addValidator('StringLength'falsearray(620));
Arguments passed in this way should be in the order in which they are defined in the constructor. The above example will instantiate the Zend_Validate_StringLenth class with its $min and $max parameters:
  1. $validator = new Zend_Validate_StringLength(620);





XXXXXXXXXXXXXXXXX

Its addValidatorS (multiple validators):
$this->addElement('text', 'firstname', array(
                          'label'      => 'Your first name:',
                          'required'   => true,
              'validators' => array(
                  array('regex', false, array(
                  'pattern'   => '/[^<>]/i',
                  'messages'  =>  'Your first name cannot contain those characters : < >'))
              )
));

Online Interpreter (and Pastebin) for most popular programming languages


online php interpreter

Google search for that search string reveals this handy webapp:
http://codepad.org/

Which I used, and resulted in this result, which I am able to share with the rest of the world:
http://codepad.org/XSQScOV1

Something like GitHub Gist or pastebin, only better.




So, what wrought this state of affairs?

1
Actually, I needed to write a regular expression condition in PHP, and I also wanted to check that all the special characters required to be escaped, ...are escaped.

To do that manually would be an error-prone affair, so:

php regex which need escape
http://stackoverflow.com/questions/1789382/php-escaping-regex-reserved-characters-anyone-know-whats-wrong-with-this
Answer: Why not simply use preg_quote?

http://php.net/manual/en/function.preg-quote.php
preg_quote() takes str and puts a backslash in front of every character that is part of the regular expression syntax. This is useful if you have a run-time string that you need to match in some text and the string may contain special regex characters.

The special regular expression characters are: . \ + * ? [ ^ ] $ ( ) { } = ! < > | : -

Last time I didn't know what did preg_match, preg...etc. meant... somehow sounds like a /contraction/ for 'pregnant'.
Okay, but it actually refers to 'Perl-style REGular expression'... thus, 'preg'.




2
Learnt from these:
how to write a regular expression for php

http://www.noupe.com/php/php-regular-expressions.html
http://www.catswhocode.com/blog/15-php-regular-expressions-for-web-developers
http://www.macronimous.com/resources/writing_regular_expression_with_php.asp
\s Matches any whitespace character including space, tab, form-feed, etc.
\S Matches any non-whitespace character.

As for the third link, it feels ironic that an info page on how to use PHP is written using M$ ASP.
(Btw, so is w3schools.)




3
Using PHP in codepad initially gave me a syntax error though:
http://stackoverflow.com/questions/9135784/syntax-error-unexpected-t-variable

Parse error: syntax error, unexpected T_VARIABLE in xxxx.php on line 2

There is no semicolon at the end of that instruction causing the error.
As in C or Perl, PHP requires instructions to be terminated with a semicolon at the end of each statement.

Never had to type a semicolon in recent days.


Anyway, the correct code:
<?php
$str = 'abc() !#$%^"\'&*()';
$result = preg_quote ( $str );
echo $result;
?>

The output:
abc\(\) \!#\$%\^"'&\*\(\)

Tuesday, January 1, 2013

Installing latest Geany (1.22) in debian 6

Installing latest Geany (1.22) in debian 6

you gotta make from sources package, just like installing python 2.7.3 on debian 6.

1. You need these dependencies first
apt-get install libgtk2.0-dev
apt-get install intltool

2. download source distrib

3. unpack
4. ./configure --prefix=/path/to/where-you-wanna-put-geany-program-files


You should get this


config.status: creating doc/geany.1
config.status: creating geany.spec
config.status: creating geany.pc
config.status: creating doc/Doxyfile
config.status: creating config.h
config.status: executing depfiles commands
config.status: executing libtool commands
config.status: executing default-1 commands
config.status: executing po/stamp-it commands
-----------------------------------------------------
Install Geany in                 : /home/your-path-to-install-to/geany
Using GTK version                : 2.20.1
Enable binary relocation         : no
Build with plugin support        : yes
Use (UNIX domain) socket support : yes
Use virtual terminal support     : yes
Configuration is done OK.

5. make install

There you have it.



EDIT: To install Geany plugins for debian 6, you need to build them,

set this env variable first:
export PKG_CONFIG_PATH=/home/<your-username>/geany/lib/pkgconfig
then only run ./configure

If successful you should get these results

    Pretty Printer:               yes
    ShiftColumn:                  yes
    Spellcheck:                   no
    TreeBrowser:                  yes
    Tableconvert:                 yes
    Updatechecker:                no
    WebHelper:                    no
    XMLSnippets:                  yes
  Features:
    GeanyVC GtkSpell support:     no
    TreeBrowser GIO support:      yes


Then
sudo make install