Skip to content

Posts tagged ‘PHP’

18
Jun

PHP — 50 dicas sobre desempenho e segurança



50 boas dicas de como uti­lizar bem o php.

5
Mar

checklist de segurança no php

Ao con­fig­u­rar o php é necessário ter em atenção alguns aspec­tos de segurança.

; php.ini
allow_url_fopen = Off ; Dis­able URLs for file han­dling functions

register_globals = Off ; Make sure this hell­ish fiend is dead

open_basedir = /var/www/htdocs/files ; Restrict file han­dling func­tions to a subdirectory

safe_mode = Off ; Dis­able this, the next is often more prac­ti­cal
safe_mode_gid = On ; Enable safe mode with group check
safe_mode_exec_dir = /var/www/binaries ; Restrict exe­cu­tion func­tions to this direc­tory
safe_mode_allowed_env_vars = PHP_ ; Restrict access to envi­ron­ment variables

max_execution_time = 30 ; Max script exe­cu­tion time
max_input_time = 60 ; Max time spent pars­ing inputs
memory_limit = 16M ; Max mem­ory size used by one script
upload_max_filesize = 2M ; Max upload file size
post_max_size = 8M ; Max post size

display_errors = Off ; Do not show errors on screen

log_errors = On ; Log errors to log file

expose_php = Off ; Hide pres­ence of PHP

# Apache con­fig­u­ra­tion or .htac­cess

Order allow,deny
Deny from all

22
Out

sapo sessions php

sapoPHP

Ontem fui a assi­s­tir a uma sessão de php

Aqui fica um pequeno resumo da sessão :

Opti­miza­ção de código

Usar sem­pre que pos­sivel require_once em vez de include.

Nas strings usar o explode em vez do preg_split.

Usar arrays o php tra­balha bem com arrays.

Evi­tar gravar as sessões e cook­ies em ficheiros, pois o acesso ao filesys­tem é sem­pre mais lento, de prefer­ên­cia uti­lizar o memcached.

Reduzir cic­los, querys , stats, remote resquests.

Não mis­tu­rar HTML no meio da lóg­ica . HTML Deve ser HTML.

Evi­tar as men­sagens de erro do php, warn­ings, notices pois se apare­cem é má programação.

<– Apache –>

Direc­tory index

Se o nosso ficheiro de index é index.php deve estar logo na 1ª linha do direc­tory index.

A maior parte dos casos temos.. index.html,index.js, index.asp, index.htm e só no fim é que aparece o index.php

.htac­cess

Se não esta­mos a uti­lizar ficheiros .htac­cess desli­gar o mesmo do apache.

Evi­tar os symlinks.

Novi­dades do PHP 5

Name­space

Reflec­tion

Late Sta­tic Binding

Inter­face

Final Class

anony­mous function

clone

SPL – Stan­dard PHP library

SOLR

DATETIME

definir um date_default (sem­pre que se tra­balha com datas)

Time­zone

Memcache(d)

PECL

SQL – PDO

Data­Base access layer

Sim­ple XML

Web­ser­vices

O auth

SOAP

Streams

- Stream filters

–Stream con­texts

–Stream erros

Magic quotes

Fil­ter sanitize

Spe­cial chars

Suhos­in­PATH

desac­ti­var CURL

desac­ti­var remote links

Mail

Banir Ficheiros / binary

Zend server

Zend plat­form

Zend guard

Zend stu­dio edit (debug)

APC (op code cache)

Strace

XDe­bug

Web­griad

Boas Práti­cas

Uti­lizar ficheiros de con­fig, classes, definir sem­pre o time zone, classe debug, classe pro­ce­dure, classe log, fire php.

Smarty Tem­plates

Quem usa ?

Zend , xcart, xoops, open

Objec­tivo

Sep­a­rar a lóg­ica da apresentação

Estru­tura de pas­tas do smarty
libs
tem­plates
templates_c
cache

As smarty tem­plates aten­uam o cross site (XSS – injecção e colo­cação de exploits)

Frame­works php

Log4PHP

Como usar o smarty ?

10
Out

download php 6

O php 6 sofreu alter­ações impor­tantes a nível de segu­rança, que vem mel­hor em muito esta lin­guagem de pro­gra­mação, abaixo poderão ver a lista de alter­açoes. esta nova ver­são 6 só deve estar disponível no final do ano.

http://www.ibm.com/developerworks/opensource/library/os-php-future/?ca=dgr-lnxw01PHP-Future

Down­load php

29
Set

30 dicas boas para quem se está a iniciar no PHP

30 dicas boas para quem se está a ini­ciar no php.

http://net.tutsplus.com/tutorials/php/30-php-best-practices-for-beginners/

29
Set

ligar postgres com PHP

Arquivos de Configuração

O post­gres pos­sui basi­ca­mente 2 arquivos de con­fig­u­rações respon­sáveis pela conexão, eles são:

  1. postgresql.conf aqui você pre­cisa definir que o seu banco de dados irá rece­ber conexão através de TCP/IP, até a ver­são 7.9 do post­gres esta con­fig­u­ração era feita assim:
    tcpip_socket = true

    A partir da versão 8 isso é feito assim: listen_addresses = ‘*’ port = 5432

  2. pg_hba.conf este é o arquivo que define quem pode aces­sar o que e de qual forma: para per­mi­tir que qual­quer IP possa aces­sar qual­quer banco adi­cione esta linha no arquivo host    all          all         0.0.0.0 0.0.0.0       pass­word Se quiser que ape­nas 1 IP especí­fico possa aces­sar a máquina então host    all          all         200.200.200.200/32      pass­word A palavra pass­word define que para você aces­sar o banco tem que dig­i­tar a senha, existe a palavra trust que diz ao banco para nao pedir senha então tenha cuidado com este tipo de configuração

Após mexer nestes dois arquivos reini­cie o banco. Para aces­sar o seu banco através do ter­mi­nal use o comando: psql –h 200.200.200.200 –U post­gres –d banco Fique atento aos fire­wall pois eles podem bar­rar a sua conexão com o banco, e mais uma dica para que a conexão possa ser esta­b­ele­cida no Cen­tOS é necessário desati­var o SELinux, que por padrão na insta­lação fica ati­vado: vim /etc/sysconfig/selinux e con­fig­ure  o SELINUX=disabled

Exem­plo de Conexão PHP para Teste

try {
	$db = new PDO("pgsql:host=localhost dbname=datacentro user=postgres password=data1234");

	$sql = 'SELECT * FROM pessoa';
	foreach ($db->query($sql) as $row) {
		print $row['cod'] . "\t";
		print $row['nome'] . "\t";
	}

} catch (PDOException  $e) {
   print $e->getMessage();
}
die("fim");

Refer­ên­cia

http://battisti.etc.br/2009/09/28/postgres-permission-denied-is-server-running/http://www.cyberciti.biz/faq/postgresql-remote-access-or-connection/

http://dickrips.wordpress.com/2009/01/16/apache-php-postgresql-no-centos-e-fedora

31
Jul

Open cart php

Open­Cart é uma platafroma de comér­cio online baseado em PHP. Esta plataforma suporta o sis­tema de “car­rinho de com­pras” e per­mite a cri­ação de uma solução de comér­cio eletrónico, ideal para peque­nas empre­sas a um custo minimo.

opencart thumb OpenCart

Entre as suas car­ac­ter­is­ti­cas mais intere­sas­ntes encontram-se a pos­si­bil­i­dade de criar cat­e­go­rias, pro­du­tos e mar­cas, sem qual­quer tipo de lim­ite, o suporte a várias moedas, a pos­si­bil­i­dade dos clientes inserirem reviews dos pro­du­tos, red­i­men­sion­a­mento automático das ima­gens do pro­du­tos e o suporte a mais de 20 sis­temas de paga­mento.

A inter­face é agra­davél e extrema­ma­mente intu­itiva e o back­of­fice é bas­tante funcional.

Um demo deste serviço pode ser exper­i­men­tado aqui, e o down­load está disponivel aqui.

Fonte :

Nél­son Silva escreve no PL todas as quin­tas um artigo sobre Open­Web. Podem encon­trar mais arti­gos como este no seu blog pes­soal.
8
Jul

Open web tools mozilla labs

A mozilla labs criou um direc­tório, onde podem ser encon­tradas de uma forma sim­ples e ráp­ida várias “fer­ra­men­tas” para pro­gra­madores, ten­taram reunir numa só página algu­mas das fer­ra­men­tas con­heci­das dos programadores.

http://tools.mozilla.com/

E claro tudo fer­ra­men­tas opensource.

A página ainda dis­põem de um for­mulário de pesquisa, muito útil caso queiram pesquisar só pelo design , código etc..

3
Jul

Manual AJax e PHP

AJAX & PHP

Man­ual de PHP

  1. http://battisti.wordpress.com/2007/03/10/apostila-de-php/

Man­ual de AJAX

  1. http://battisti.wordpress.com/2007/08/17/apostila-de-ajax-epac-conged/
  2. http://battisti.wordpress.com/2007/05/09/apostila-de-ajax/


1
Jul

Download PHP 5.3.0 já saiu

elephpant-elephant-php-logo

Foi lançada a ver­são 5.3.0 do PHP. Segundo a equipa de desen­volvi­mento, esta foi a maior imple­men­tação das ver­sões série 5. Ela traz, além de várias novi­dades, uma porção de bugs foram cor­rigi­dos (mais de 140…).

Algu­mas novi­dades em destaque, são:

Name­spaces

Name­space” é um con­ceito ampla­mente uti­lizado em várias áreas da infor­mática.
Imag­inem um sis­tema oper­a­tivo com dois arquivos com o mesmo nome. Como eles não podem estar den­tro da mesma pasta, certo? Sendo assim, cri­amos links de pas­tas difer­entes para cada um deles.
No PHP seria como criar var­iáveis den­tro de namespaces.

Qual­quer código PHP pode ser colo­cado em name­spaces, mas ape­nas três tipos de código (Class, Funções e Con­stantes) são afec­ta­dos por elas.

A util­i­dade disso é evi­tar prob­le­mas com nomes de var­iáveis do sis­tema ou de pro­gra­mas feitos por ter­ceiros. Tam­bém evita ter que criar nomes lon­gos para os objec­tos para impedir que não haja con­fli­tos com out­ros objec­tos do mesmo nome.

Assim como out­ras funções do PHP (como a header() por exem­plo), os name­spaces devem ser definidos antes de qual­quer echo ou print.

Exis­tem dois tipos de name­spaces: os name­spaces comuns e os sub-namespaces. Veja um exem­plo de declar­ação de name­spaces:
Late Sta­t­icBind­ing

Outra novi­dade é a imple­men­tação do con­ceito de “Late Sta­tic Bind­ing”. Usando Late Sta­t­ics Bind­ings, a res­olução de méto­dos não é feito na classe onde ele foi cri­ado, mas sim de forma hierárquica, seguindo a ordem de exe­cução. Para enten­der mel­hor, veja o exem­plo com­par­a­tivo entre a imple­men­tação que tín­hamos, e a nova possibilidade:

Agora com Sta­tic Bind­ings temos:
GC (Garbage Colector)

Agora é pos­sível armazenar o resul­tado de var­iáveis em cache. Desta forma, mesmo que o estado de sua var­iável mude, é pos­sível recu­perar um valor ante­rior. Veja o exem­plo de uso:

gc_enable (); // activa o cache que irá guardar os resultados

$valor = ‘Primeiro valor’;
echo $valor. ‘‘;
$valor = ‘Segundo valor’;
echo $valor. ‘‘;

$ante­ri­ores = gc_collect_cycles(); // apanha os val­ores ante­ri­ores em cache

$valor = $ante­ri­ores [’valor’] [0]; // apanha a posi­cao 0 da posi­cao de nome ‘valor’

gc_disable($anteriores); // limpa os val­ores apan­hados e desa­loca da memoria

echo $valor . ‘‘;

/*
Esse script irah retornar:

Primeiro valor
Segundo valor
Primeiro valor
*/

?>

Funções Anôn­i­mas

Funções Anôn­i­mas per­mitem criar funções sem um nome especí­fico. Elas são muito úteis quando usadas como parâmet­ros de funções de call­back (como preg_replace_callback), mas podem ter vários out­ras util­i­dades. Veja um exemplo:

Além dessas novas funções, exis­tem alter­ações nos dri­ves de lig­ação com o MySQL, alter­ações de com­por­ta­mento em funções já ampla­mente uti­lizadas como a função ses­sion(), md5(), opendir().

Link para down­load : http://php.net/downloads.php

Fonte: http://samuelcorradi.com.br

Bad Behavior has blocked 58 access attempts in the last 7 days.