divendres 22 de gener de 2010

Assegurant el PHP amb Suhosin. Instal·lació a Ubuntu.

Aquesta setmana hem rebut al despatx de Corretgé.com l'esplèndid PHP Security Poster editat per l'empresa alemanya especialitzada en seguretat SektionEins.

SektionEins és l'empresa que ha creat el paquet de seguretat Suhosin. Si hem instal·lat el PHP desde la paqueteria d'Ubuntu, al fer un phpinfo(), segurament veurem que al PHP instal·lat se li ha aplicat el patch de Suhosin, és fàcil de detectar, per les lletres en coreà 수호신 al final de la plana, que ve a ser la traducció de una deïtat guardiana... sí, és la traducció literal, no és cap de les deïtats guardianes que el budisme assigna segons l'any de naixement a la seva parròquia.

Suhosin logoThis server is protected with the Suhosin Patch 0.9.6.2
Copyright (c) 2006 Hardened-PHP Project


Així doncs, els ubuntaires ja tenim el PHP preparat de sèrie per al Suhosin i no hem de compilar ni aplicar cap patch.

Per a instal·lar aquesta extensió de PHP, farem

sudo apt-get install php5-suhosin

A /etc/php5/apache2/conf.d/suhosin.ini podrem parametritzar aquest guardià protector.

En properes edicions comentarem alguns dels paràmetres de configuració:

DirectiveLocal ValueMaster Value
suhosin.apc_bug_workaroundOffOff
suhosin.cookie.checkraddr00
suhosin.cookie.cryptdocrootOnOn
suhosin.cookie.cryptkey[ protected ][ protected ]
suhosin.cookie.cryptlistno valueno value
suhosin.cookie.cryptraddr00
suhosin.cookie.cryptuaOnOn
suhosin.cookie.disallow_nul11
suhosin.cookie.disallow_ws11
suhosin.cookie.encryptOffOff
suhosin.cookie.max_array_depth5050
suhosin.cookie.max_array_index_length6464
suhosin.cookie.max_name_length6464
suhosin.cookie.max_totalname_length256256
suhosin.cookie.max_value_length1000010000
suhosin.cookie.max_vars100100
suhosin.cookie.plainlistno valueno value
suhosin.coredumpOffOff
suhosin.disable.display_errorsOffOff
suhosin.executor.allow_symlinkOffOff
suhosin.executor.disable_emodifierOffOff
suhosin.executor.disable_evalOffOff
suhosin.executor.eval.blacklistno valueno value
suhosin.executor.eval.whitelistno valueno value
suhosin.executor.func.blacklistno valueno value
suhosin.executor.func.whitelistno valueno value
suhosin.executor.include.blacklistno valueno value
suhosin.executor.include.max_traversal00
suhosin.executor.include.whitelistno valueno value
suhosin.executor.max_depth00
suhosin.filter.actionno valueno value
suhosin.get.disallow_nul11
suhosin.get.disallow_ws00
suhosin.get.max_array_depth5050
suhosin.get.max_array_index_length6464
suhosin.get.max_name_length6464
suhosin.get.max_totalname_length256256
suhosin.get.max_value_length512512
suhosin.get.max_vars100100
suhosin.mail.protect00
suhosin.memory_limit00
suhosin.mt_srand.ignoreOnOn
suhosin.multiheaderOffOff
suhosin.perdir00
suhosin.post.disallow_nul11
suhosin.post.disallow_ws00
suhosin.post.max_array_depth5050
suhosin.post.max_array_index_length6464
suhosin.post.max_name_length6464
suhosin.post.max_totalname_length256256
suhosin.post.max_value_length6500065000
suhosin.post.max_vars200200
suhosin.protectkeyOnOn
suhosin.request.disallow_nul11
suhosin.request.disallow_ws00
suhosin.request.max_array_depth5050
suhosin.request.max_array_index_length6464
suhosin.request.max_totalname_length256256
suhosin.request.max_value_length6500065000
suhosin.request.max_varname_length6464
suhosin.request.max_vars200200
suhosin.server.encodeOnOn
suhosin.server.stripOnOn
suhosin.session.checkraddr00
suhosin.session.cryptdocrootOnOn
suhosin.session.cryptkey[ protected ][ protected ]
suhosin.session.cryptraddr00
suhosin.session.cryptuaOnOn
suhosin.session.encryptOnOn
suhosin.session.max_id_length128128
suhosin.simulationOffOff
suhosin.sql.bailout_on_errorOffOff
suhosin.sql.comment00
suhosin.sql.multiselect00
suhosin.sql.opencomment00
suhosin.sql.union00
suhosin.sql.user_postfixno valueno value
suhosin.sql.user_prefixno valueno value
suhosin.srand.ignoreOnOn
suhosin.stealthOnOn
suhosin.upload.disallow_binary00
suhosin.upload.disallow_elf11
suhosin.upload.max_uploads2525
suhosin.upload.remove_binary00
suhosin.upload.verification_scriptno valueno value

dilluns 18 de gener de 2010

Codis d'error en programes RPGLE

Dins un bloc monitoritzat amb MONITOR a RPGLE, si hi ha cap excepció, tindrem el codi d'excepció a la variable %STATUS.

Aquest codi pot ser:

Normal Codes

Code
Condition
00000
No exception/error occurred
00001
Called program returned with the LR indicator on.
00050
Conversion resulted in substitution.
Exception/Error Codes

Code
Condition
00100
Value out of range for string operation
00101
Negative square root
00102
Divide by zero
00103
An intermediate result is not large enough to contain the result.
00104
Float underflow. An intermediate value is too small to be contained in the intermediate result field.
00105
Invalid characters in character to numeric conversion functions.
00112
Invalid Date, Time or Timestamp value.
00113
Date overflow or underflow. (For example, when the result of a Date calculation results in a number greater than *HIVAL or less than *LOVAL.)
00114
Date mapping errors, where a Date is mapped from a 4-character year to a 2-character year, and the date range is not 1940-2039.
00115
Variable-length field has a current length that is not valid.
00120
Table or array out of sequence.
00121
Array index not valid
00122
OCCUR outside of range
00123
Reset attempted during initialization step of program
00202
Called program or procedure failed; halt indicator (H1 through H9) not on
00211
Error calling program or procedure
00222
Pointer or parameter error
00231
Called program or procedure returned with halt indicator on
00232
Halt indicator on in this program
00233
Halt indicator on when RETURN operation run
00299
RPG IV formatted dump failed
00301
Class or method not found for a method call, or error in method call.
00302
Error while converting a Java array to an RPG parameter on entry to a Java native method.
00303
Error converting RPG parameter to Java array on exit from an RPG native method.
00304
Error converting RPG parameter to Java array in preparation for a Java method call.
00305
Error converting Java array to RPG parameter or return value after a Java method.
00306
Error converting RPG return value to Java array.
00333
Error on DSPLY operation
00351
Error parsing XML document
00352
Invalid option for %XML
00353
XML document does not match RPG variable
00354
Error preparing for XML parsing
00401
Data area specified on IN/OUT not found
00402
*PDA not valid for non-prestart job
00411
Data area type or length does not match
00412
Data area not locked for output
00413
Error on IN/OUT operation
00414
User not authorized to use data area
00415
User not authorized to change data area
00421
Error on UNLOCK operation
00425
Length requested for storage allocation is out of range
00426
Error encountered during storage management operation
00431
Data area previously locked by another program
00432
Data area locked by program in the same process
00450
Character field not entirely enclosed by shift-out and shift-in characters
00451
Conversion between two CCSIDs is not supported.
00501
Failure to retrieve sort sequence.
00502
Failure to convert sort sequence.
00802
Commitment control not active.
00803
Rollback operation failed.
00804
Error occurred on COMMIT operation
00805
Error occurred on ROLBK operation
00907
Decimal data error (digit or sign not valid)
00970
The level number of the compiler used to generate the program does not agree with the level number of the RPG IV run-time subroutines.
09998
Internal failure in ILE RPG compiler or in run-time subroutines
09999
Program exception in system routine.

dijous 14 de gener de 2010

Comprimir arxius ZIP a l'AS/400

Per a comprimir en format ZIP un arxiu del sistema d'arxius IFS de l'AS/400 emprarem la instrucció JAR.

JAR és un format per a distribuir aplicacions java, agrupant classes de diferents arxius en un de sol. Amb el temps es va adoptar un mètode de compressió, el ZIP de Phil Katz, vet aquí perquè les dues primeres posicions dels arxius .ZIP comencen amb les inicials PK.

Per a procedir a comprimir en format ZIP, arrencarem una sessió de shell QSH de l'AS/400
STRQSH

I indicarem la instrucció
jar cfM arxiu.zip arxiu.cvs

Les opcions seran:
  • c Crear un JAR
  • f Crear-ho en un arxiu de disc
  • M No incloure el manifest java
path i nom de l'arxiu comprimit, indicar extensió .zip

path i nom de l'arxiu a comprimir.

I obtindrem un arxiu enzipat a la carpeta on ens trobem.

Si executem jar sense cap paràmetre, obtindrem una ajuda dels paràmetres que es poden emprar.

També es pot fer d'una tacada passant com a paràmetre de STRQSH la instrucció a executar.

divendres 8 de gener de 2010

Problemes amb el ratolí a VMWare Web Console i Ubuntu 9.10

Un dels problemes detectats en l'actualització a Karmic, la versió 9.10 d'Ubuntu, ha estat que la cònsola web del servidor de màquines virtuals VMWare no li funcionava correctament el ratolí, fent-la inpracticable.

Afegint aquestes instruccions a l'inici de l'arxiu ~/.mozilla/firefox/uc7qje8k.default/extensions/VMwareVMRC@vmware.com/plugins/lib/wrapper-gtk24.sh

#patch pel tema del ratolí
VMWARE_USE_SHIPPED_GTK='force'
export VMWARE_USE_SHIPPED_GTK="force"


Els problemes amb el teclat els solventarem afegint aquesta instrucció a l'arxiu ~/.vmware/config
xkeymap.noKeycodeMap = "TRUE"

dijous 31 de desembre de 2009

Save MySQL!

Michael Widenius, fundador i primerenc desenvolupador de MySQL ens informa de que s'ha creat una campanya per a salvar la llicència GPL del MySQL.

La compra de SUN per Oracle, pot fer perillar el desenvolupament del MySQL, pedra angular de la InterNet que coneixem avui en dia.

La majoria d'aplicacions a InterNet còrren en un clàssic LAMP: Linux, Apache, MySQL i PHP, i un canvi en el model de llicència de MySQL seria catastròfic per al desenvolupament de la xarxa, doncs el fet de poder tenir un entorn de programació totalment OpenSource aporta un munt d'aplicacions al consum de la xarxa de xarxes.

És important donar suport a aquesta petició abans del 4 de gener del 2010:


dimecres 30 de desembre de 2009

Google SideWiki

A principis de desembre d'enguany Google ha creat el plugin SideWiki per a Google Chrome, funcional també en el Chromium, la versió per a Linux del navegador de Google.

La SideWiki és una eina que permet contribuir informació d'ajuda a qualsevol plana web d'InterNet.



A més de poder fer anotacions per a una plana web o una part de la plana web, podem llegir les anotacions que altres persones han realitzat en el Google SideWiki, i propagar aquests comentaris en blocs Blogger i altres xarxes socials com Facebook, twitter i perfils Google.

dissabte 12 de desembre de 2009

Importar dades CSV a MySQL

Per a importar un arxiu de dades separades per comes (CSV) a una taula MySQL, emprarem la instrucció LOAD DATA INFILE:

load data local infile 'categories.csv'
into table categories
fields terminated by ','
enclosed by '"'
lines terminated by "\n"
(catCodi, catDesc);


Tots els fulls de càlcul permeten la exportació a CSV, pel que amb aquesta senzilla instrucció podrem importar ràpidament dades a MySQL.

Net Access

Ocupi el seu lloc a InterNet.
Net AccessDoni valor afegit a la comunicació amb els clients i proveïdors.
Correu, documents i calendari amb el seu pròpi domini. Mínim SPAM.
50€ Instal·lació i 35€ manteniment anual.
Estratègia Blogger desde 560€

www.net-access.biz

Llibres Informàtica

Llibres d'Informàtica a la Casa del Llibre'

Registre de Dominis a 6,5€

Aprofiti's de la debilitat del Dollar. Registre de Dominis per 9,99USD anuals.

www.domini.net