Jump to content

POWERED BY:

Recommended Posts

Ola estou fazendo um instalador de banco de dados 

 

em parte funciona  

 

Mas quando uso o

<<<HTML

 

HTML;

 

Ele fica com estas informações no top

 

7.4 ao 8.38.0.28512MOnOnOnOffOffOnOffOffOnOnOnOnOnprogress-bar-success

 


<?php
$MeuHtml = <<<HTML
<!DOCTYPE html>
<html>
<head><meta charset="utf-8">
	
	<meta http-equiv="X-UA-Compatible" content="IE=edge">
	<title>Instalação {$autor}</title>
	<link rel="icon" href="{$urlApi}api/allinstall/assets/icone.png?v={$versao}" sizes="32x32">
	<meta content="width=device-width, initial-scale=1, maximum-scale=1, user-scalable=no" name="viewport">
	<link rel="stylesheet" href="{$urlApi}api/allinstall/assets/css/app.css?v={$versao}">
	<style type="text/css">
	.license { background-color: #FFF; height: 400px; width: 100%; margin: 10px; }
	.form-control{ margin-bottom: 5px; }
	#primary{background: #FF6403}
	.paper-card{background: #272c33}
	.card{background: none;}
	.sw-theme-circles>ul.step-anchor:before{background-color: #30363d}
	.sw-theme-circles>ul.step-anchor>li>a{border: 3px solid #30363d}
	.sw-theme-circles>ul.step-anchor>li>a{background: #f5f5f5; min-width: 50px; height: 50px; text-align: center; -webkit-box-shadow: inset 0 0 0 3px #fff!important; box-shadow: inset 0 0 0 3px #fff!important; text-decoration: none; outline-style: none; z-index: 99; color: #999; background: #fff; line-height: 2; font-weight: bold;}
	.sw-theme-circles>ul.step-anchor>li{margin-left: 15%;}
	.card-header{border-bottom: 0}
	.table-striped tbody tr:nth-of-type(odd){background-color: #30363d;}
	.table-bordered{border: 1px solid #30363d;}
	.table-bordered td, .table-bordered th { border: 1px solid #30363d; }
</style>

</head>
<body class="light loaded">
	<div id="app">
		<main>
			<div id="primary" class="p-t-b-100 height-full">
				<div class="container">
					<div class="row">
						<div class="col-lg-8 mx-md-auto paper-card">
							<div class="text-center">
								<img class="img-responsive" src="{$urlApi}api/allinstall/assets/{$imagem}?v={$versao}">
								<p><strong><H3>Instalação {$projeto} | V: {$versao}</H3></strong></p>
							</div>

HTML;
                 if (!isset($_GET['step']) || $_GET['step'] == '1') { 
$MeuHtml .= <<<HTML
								<div class="card no-b">
									<div class="card-header  pb-0">
										<div class="stepper sw-main sw-theme-circles" id="smartwizard"
										data-options='{
		
										"theme":"sw-theme-circles",
										"transitionEffect":"fade"
										}'>
											<ul class="nav step-anchor">
												<li><a href="#step-1y">1</a></li>
												<li><a href="#step-2y">2</a></li>
												<li><a href="#step-3y">3</a></li>
												<li><a href="#step-4y">4</a></li>
											</ul>
										</div>
									</div>

									<div class="card-body">
										<h6><b>Configurações do Servidor</b></h6><br>
										<table class="table table-condensed table-bordered table-striped">
											<tr>
												<th>Função / Extensão</th>
												<th>Config. Necessária</th>
												<th>Config. Atual</th>
												<th width="50px">Status</th>
											</tr>

											<tr>
												<td>Versão do PHP</td>
												<td>
HTML;												
												echo $php7. ' ao '.$php8;											

$MeuHtml .= <<<HTML
												</td>
												<td>

HTML;
												echo phpversion();
$MeuHtml .= <<<HTML
											
												</td>
												<td>


HTML;
                        if(phpversion() >= $php7 && phpversion() <= $php8) { $i = $i + 1; echo '<button type="button" class="btn btn-success"><i class="icon-check"></i></button>'; } else { echo '<button type="button" class="btn btn-danger"><i class="icon-close"></i></button>'; }
$MeuHtml .= <<<HTML
												</td>
											</tr>
HTML;

$MeuHtml .= <<<HTML
											<tr>
												<td>Memória do PHP</td>
												<td>128MB</td>
												<td>												
HTML;

												echo $mem = ini_get('memory_limit');

$MeuHtml .= <<<HTML
												</td>
												<td>
HTML;
                        if($mem >= 128) { $i = $i + 1; echo '<button type="button" class="btn btn-success"><i class="icon-check"></i></button>'; } else { echo '<button type="button" class="btn btn-danger"><i class="icon-close"></i></button>'; }
$MeuHtml .= <<<HTML
											
												</td>
											</tr>
											<tr>
												<td>cURL</td>
												<td>On</td>
										<td>	
HTML;
					    if(function_exists('curl_init')) { echo 'On'; } else { echo 'Off'; } 

$MeuHtml .= <<<HTML
												</td>
												<td>

HTML;
						if(function_exists('curl_init')) { $i = $i + 1; echo '<button type="button" class="btn btn-success"><i class="icon-check"></i></button>'; } else { echo '<button type="button" class="btn btn-danger"><i class="icon-close"></i></button>'; }

$MeuHtml .= <<<HTML
												</td>
											</tr>
											<tr>
												<td>Allow URL fopen</td>
												<td>On</td>
												<td>

HTML;
						 if(ini_get('allow_url_fopen')) { echo 'On'; } else { echo 'Off'; } 

$MeuHtml .= <<<HTML
												</td>
												<td>

HTML;
						 if(ini_get('allow_url_fopen')) { $i = $i + 1; echo '<button type="button" class="btn btn-success"><i class="icon-check"></i></button>'; } else { echo '<button type="button" class="btn btn-danger"><i class="icon-close"></i></button>'; }

$MeuHtml .= <<<HTML
												</td>
											</tr>
											<tr>
												<td>File Get Contents</td>
												<td>On</td>
												<td>
HTML;
						 if(function_exists('file_get_contents')) { echo 'On'; } else { echo 'Off'; }

$MeuHtml .= <<<HTML
												</td>
												<td>

HTML;
												
						if(function_exists('file_get_contents')) { $i = $i + 1; echo '<button type="button" class="btn btn-success"><i class="icon-check"></i></button>'; } else { echo '<button type="button" class="btn btn-danger"><i class="icon-close"></i></button>'; } 


$MeuHtml .= <<<HTML
												</td>
											</tr>
											<tr>
												<td>Sessão Auto Start</td>
												<td>Off</td>
												<td>
HTML;
                        if(ini_get('session_auto_start')) { echo 'On'; } else { echo 'Off'; }

$MeuHtml .= <<<HTML
												</td>
												<td>

HTML;
						if(!ini_get('session_auto_start')) { $i = $i + 1; echo '<button type="button" class="btn btn-success"><i class="icon-check"></i></button>'; } else { echo '<button type="button" class="btn btn-danger"><i class="icon-close"></i></button>'; }


$MeuHtml .= <<<HTML
						</td>
						</tr>
											<tr>
												<td>Safe Mode</td>
												<td>Off</td>
												<td>

HTML;
						if(ini_get('safe_mode')) { echo 'On'; } else { echo 'Off'; }

$MeuHtml .= <<<HTML
												</td>
												<td>
HTML;
						if(!ini_get('safe_mode')) { $i = $i + 1; echo '<button type="button" class="btn btn-success"><i class="icon-check"></i></button>'; } else { echo '<button type="button" class="btn btn-danger"><i class="icon-close"></i></button>'; }

$MeuHtml .= <<<HTML
						                </td>
											</tr>
											<tr>
												<td>Short Open Tags</td>
												<td>On</td>
												<td>
HTML;
					if(ini_get('short_open_tag')) { echo 'On'; } else { echo 'Off'; }

$MeuHtml .= <<<HTML
												</td>
												<td>

HTML;
					if(ini_get('short_open_tag')) { $i = $i + 1; echo '<button type="button" class="btn btn-success"><i class="icon-check"></i></button>'; } else { echo '<button type="button" class="btn btn-danger"><i class="icon-close"></i></button>'; } 

$MeuHtml .= <<<HTML
					                      </td>
											</tr>
											<tr>
												<td>Magic Quotes GPC</td>
												<td>Off</td>
												<td>
HTML;
					if(ini_get('magic_quotes_gpc')) { echo 'On'; } else { echo 'Off'; } 

$MeuHtml .= <<<HTML
												</td>
												<td>

HTML;
					if(!ini_get('magic_quotes_gpc')) { $i = $i + 1; echo '<button type="button" class="btn btn-success"><i class="icon-check"></i></button>'; } else { echo '<button type="button" class="btn btn-danger"><i class="icon-close"></i></button>'; } 

$MeuHtml .= <<<HTML
												</td>
											</tr>
											<tr>
												<td>Register Globals</td>
												<td>Off</td>
												<td>
HTML;
					if(ini_get('register_globals')) { echo 'On'; } else { echo 'Off'; }

$MeuHtml .= <<<HTML
					                         </td>
												<td>

HTML;
					if(!ini_get('register_globals')) { $i = $i + 1; echo '<button type="button" class="btn btn-success"><i class="icon-check"></i></button>'; } else { echo '<button type="button" class="btn btn-danger"><i class="icon-close"></i></button>'; } 
$MeuHtml .= <<<HTML
					                    </td>
											</tr>
											<tr>
												<td>PHPMail</td>
												<td>On</td>
												<td>
HTML;
					if(function_exists('mail')) { echo 'On'; } else { echo 'Off'; } 

$MeuHtml .= <<<HTML
					                         </td>
												<td>

HTML;
					if(function_exists('mail')) { $i = $i + 1; echo '<button type="button" class="btn btn-success"><i class="icon-check"></i></button>'; } else { $i = $i + 1; echo '<button type="button" class="btn btn-danger"><i class="icon-close"></i></button>'; } 

$MeuHtml .= <<<HTML
					                    </td>
											</tr>
											<tr>
												<td>MySQLi</td>
												<td>On</td>
												<td>
HTML;
					if(extension_loaded('mysqli')) { echo 'On'; } else { echo 'Off'; } 

$MeuHtml .= <<<HTML
												</td>
												<td>
HTML;
					if(extension_loaded('mysqli')) { $i = $i + 1; echo '<button type="button" class="btn btn-success"><i class="icon-check"></i></button>'; } else { echo '<button type="button" class="btn btn-danger"><i class="icon-close"></i></button>'; }
$MeuHtml .= <<<HTML
											</td>
											</tr>
											<tr>
												<td>ZIP</td>
												<td>On</td>
												<td>
HTML;
					if(extension_loaded('zip')) { echo 'On'; } else { echo 'Off'; }

$MeuHtml .= <<<HTML
												</td>
												<td>
HTML;
					if(extension_loaded('zip')) { $i = $i + 1; echo '<button type="button" class="btn btn-success"><i class="icon-check"></i></button>'; } else { echo '<button type="button" class="btn btn-danger"><i class="icon-close"></i></button>'; } 

$MeuHtml .= <<<HTML
												</td>
											</tr>
											<tr>
												<td>MBString</td>
												<td>On</td>
												<td>											
HTML;
					if(extension_loaded('mbstring')) { echo 'On'; } else { echo 'Off'; } 

$MeuHtml .= <<<HTML
												</td>
												<td>
HTML;
					if(extension_loaded('mbstring')) { $i = $i + 1; echo '<button type="button" class="btn btn-success"><i class="icon-check"></i></button>'; } else { echo '<button type="button" class="btn btn-danger"><i class="icon-close"></i></button>'; } 

$MeuHtml .= <<<HTML
												</td>
											</tr>
											<tr>
												<td>XML</td>
												<td>On</td>
												<td>
HTML;
					if(extension_loaded('libxml')) { echo 'On'; } else { echo 'Off'; } 
$MeuHtml .= <<<HTML
												</td>
												<td>

HTML;
					if(extension_loaded('libxml')) { $i = $i + 1; echo '<button type="button" class="btn btn-success"><i class="icon-check"></i></button>'; } else { echo '<button type="button" class="btn btn-danger"><i class="icon-close"></i></button>'; }

$MeuHtml .= <<<HTML
												</td>
											</tr>
										</table>

										<hr>
										
										<h6><b>Diretórios e Permissões de Arquivos</b></h6><br>
										<table class="table table-condensed table-bordered table-striped">
											<tr>
												<th>Diretório</th>
												<th style="width: 40px">Status</th>
											</tr>

											<tr>
												<td>database</td>
												<td>												
HTML;
                    if(is_writable('database')) { $i = $i + 1; echo '<button type="button" class="btn btn-success"><i class="icon-check"></i></button>'; } else { echo '<button type="button" class="btn btn-danger"><i class="icon-close"></i></button>'; }
$MeuHtml .= <<<HTML

												</td>
											</tr>
										</table>

										<hr>
										
										<h6><b>Pontuação / Compatibilidade</b></h6><br>

										<div class="progress">
											<div class="progress-bar progress-bar-striped progress-bar-animated 
HTML;
                    echo ProgressBar(substr(VerificaPontuacao($i,'16'),0,4));
					$PontPorce = VerificaPontuacao($i,'16');
					$pont100 = substr(VerificaPontuacao($i,'16'),0,4);
$MeuHtml .= <<<HTML
											" role="progressbar" aria-valuemax="100" style="width: {$PontPorce}%;">
												<strong>{$pont100} / 100</strong>
											</div>
										</div>
									
										<center>
											<br>
											<button class="btn btn-primary" onclick="document.location.href='{$URL}?step=1';">Verificar</button>
											<button class="btn btn-primary" onclick="document.location.href='{$URL}?step=2';">Próximo</button>
										</center>
									</div>
								</div>
HTML;
                    } elseif (isset($_GET['step']) && $_GET['step'] == '2') { 
$MeuHtml .= <<<HTML

								<div class="card no-b">
									<div class="card-header  pb-0">
										<div class="stepper sw-main sw-theme-circles" id="smartwizard"
										data-options='{
		
										"theme":"sw-theme-circles",
										"transitionEffect":"fade"
										}'>
											<ul class="nav step-anchor">
												<li><a href="#step-1y">1</a></li>
												<li class="active"><a href="#step-2y">2</a></li>
												<li><a href="#step-3y">3</a></li>
												<li><a href="#step-4y">4</a></li>
											</ul>
										</div>
									</div>

									<div class="card-body ">
										<iframe src="{$urlApi}api/allinstall/termos.php{$Frame}" class="license" frameborder="0" scrolling="auto"></iframe>
										<form action="setup.php">
											<input type="hidden" name="step" value="3">
											<label><input type="checkbox" required=""> Sim, eu aceito</label>
											<center>
												<br>
												<a href="javascript:history.back()"><button class="btn btn-primary">Voltar</button></a>
												<button class="btn btn-primary" type="submit">Próximo</button>
											</center>
										</form>
									</div>
								</div>

HTML;
                    } elseif (isset($_GET['step']) && $_GET['step'] == '3') {
$MeuHtml .= <<<HTML

								<div class="card no-b">
									<div class="card-header  pb-0">
										<div class="stepper sw-main sw-theme-circles" id="smartwizard"
										data-options='{
		
										"theme":"sw-theme-circles",
										"transitionEffect":"fade"
										}'>
											<ul class="nav step-anchor">
												<li><a href="#step-1y">1</a></li>
												<li class="active"><a href="#step-2y">2</a></li>
												<li class="active"><a href="#step-3y">3</a></li>
												<li><a href="#step-4y">4</a></li>
											</ul>
										</div>
									</div>

									<div class="card-body">
										<form method="post" action="?InstallDB">
											<h6><b>1. MySQL - Configuração do Banco de Dados</b></h6><hr>

											<div class="form-group row">
												<label class="col-sm-3 control-label">MySQL Host:</label>
												<div class="col-sm-9">
													<input class="form-control" name="dbhost" value="localhost" required>
												</div>
											</div>

											<div class="form-group row">
												<label class="col-sm-3 control-label">Usuário MySQL:</label>
												<div class="col-sm-9">
													<input class="form-control" name="dbuser" required>
												</div>
											</div>

											<div class="form-group row">
												<label class="col-sm-3 control-label">Senha MySQL:</label>
												<div class="col-sm-9">
													<input class="form-control" name="dbpass">
												</div>
											</div>

											<div class="form-group row">
												<label class="col-sm-3 control-label">Nome do Banco MySQL:</label>
												<div class="col-sm-9">
													<input class="form-control" name="dbname" required>
												</div>
											</div>
												
											<h6><b>2. Configuração Comum</b></h6><hr>

											<div class="form-group row">
												<label class="col-sm-3 control-label">Nome do Site:</label>
												<div class="col-sm-9">
													<input class="form-control" name="nomesite" required>
												</div>
											</div>

											<div class="form-group row">
												<label class="col-sm-3 control-label">URL do Site:</label>
												<div class="col-sm-9">
													<input class="form-control" name="urlsite" value="{$urlsite}" required>
												</div>
											</div>

											<div class="form-group row">
												<label class="col-sm-3 control-label">URL de Instalação:</label>
												<div class="col-sm-9">
													<input class="form-control" name="siteurl" value="{$siteurl}" required>
												</div>
											</div>

											<div class="form-group row">
												<label class="col-sm-3 control-label">Extensão:</label>
												<div class="col-sm-9">
									               <select class="form-control" name="extensao" required>
                                            <option value=""> Selecionar Extensão </option>
                                            <option value="1"> MYSQLI </option>
                                            <option value="2"> PDO </option>

									               </select>
												</div>
											</div>												

											<div class="form-group row">
												<label class="col-sm-3 control-label">Define TimeZone:</label>
												<div class="col-sm-9">
									               <select class="form-control" name="timezone" id="timezone">

HTML;
                    foreach ($timezones as $timezone) :
					echo '<option value="'.$timezone.'" '.$timezone === $current_timezone ? 'selected' : ''.'> '.$timezone.' </option>';
                    endforeach;
$MeuHtml .= <<<HTML
									               </select>
												</div>
											</div>	
											<div class="form-group row">
												<label class="col-sm-3 control-label">E-mail:</label>
												<div class="col-sm-9">
													<input class="form-control" name="email" required>
													<em>Mesmo e-mail cadastrado em nosso Site.</em>
												</div>
											</div>

											<h6><b>3. Configuração do Administrador</b></h6><hr>

											<div class="form-group row">
												<label class="col-sm-3 control-label">Nome do Usuário:</label>
												<div class="col-sm-9">
													<input class="form-control" name="usuario" required>
												</div>
											</div>

											<div class="form-group row">
												<label class="col-sm-3 control-label">Login:</label>
												<div class="col-sm-9">
													<input class="form-control" name="login" required>
												</div>
											</div>

											<div class="form-group row">
												<label class="col-sm-3 control-label">Senha:</label>
												<div class="col-sm-9">
													<input class="form-control" type="password" name="senha" required>
												</div>
											</div>

											<div class="form-group row">
												<label class="col-sm-3 control-label">Senha[confimação]:</label>
												<div class="col-sm-9">
													<input class="form-control" type="password" name="senhaconfirm" required>
												</div>
											</div>

											<center>
												<a class="btn btn-primary" href="javascript:history.back()">Voltar</a>
												<button class="btn btn-primary">Próximo</button>
											</center>
										</form>
									</div>
								</div>
HTML;
               } elseif (isset($_GET['step']) && $_GET['step'] == '4') {
$MeuHtml .= <<<HTML
								<div class="card no-b">
									<div class="card-header  pb-0">
										<div class="stepper sw-main sw-theme-circles" id="smartwizard"
										data-options='{
		
										"theme":"sw-theme-circles",
										"transitionEffect":"fade"
										}'>
											<ul class="nav step-anchor">
												<li><a href="#step-1y">1</a></li>
												<li class="active"><a href="#step-2y">2</a></li>
												<li class="active"><a href="#step-3y">3</a></li>
												<li class="active"><a href="#step-4y">4</a></li>
											</ul>
										</div>
									</div>

									<div class="card-body">
										<div>
											<h4><b>Instalação realizada com sucesso!</b></h4>
										<p>Agora você poderá utilizar o seu {$projeto}, em caso de dúvidas entre em contato com o suporte: <b>{$emailautor}</b></p>
										</div>
										<center>
						        <form action="{$URL}?step=4" method="post">
                                     <button type="submit" name="realizar_login" class="btn btn-primary">Realizar Login</button>
                                </form>
										</center>
									</div>
								</div>
HTML;								
							 } 
if (isset($_POST['realizar_login'])) {
    // Deletar os arquivos
    @unlink('setup.php');
    @unlink($URL);
    @unlink('termos.php');
    @unlink('database/BD.sql');
    @unlink('controller/setup.php');

    // Redirecionar para a página de login ou outra página desejada
    header('Location: login.php?finish');
    exit;
}								 
$MeuHtml .= <<<HTML

							<div class="box-footer">
								<center>
									Todos os Direitos Reservados {$autor}
								</center>
							</div>
						</div>
					</div>
				</div>
			</div>
		</main>
	</div>
	<script src="{$urlApi}api/allinstall/assets/js/app.js"></script>
</body>
</html>

HTML;


echo $MeuHtml;

 

Share this post


Link to post
Share on other sites

O problema é causado pelas chamadas ao echo no meio da string <<<HTML. Isso faz com que o PHP misture a saída do buffer de código HTML com a saída do PHP antes de completar a construção da string. Para resolver isso, encapsule a lógica PHP em funções ou variáveis antes de construir a string HTML.

Share this post


Link to post
Share on other sites

Obrigado por responder 

 

Então Williams eu quero poder ofuscar codigo php e html junto, mas sempre dá erro..

 

Se eu ofuscar só o php da certo 

 

Eu fiz este ofuscar e simples 

 


<?php
ini_set('display_errors', 1);
ini_set('display_startup_errors', 1);
error_reporting(E_ALL);

$response = [
    'status' => 'error',
    'message' => 'Ocorreu um erro desconhecido.'
];

function obfuscatePHP($code, $fileName) {
    // Diretório onde o arquivo de código ofuscado será salvo
    $outputDirectory = 'CodigoFuscado/';

    // Cria um nome de subdiretório baseado na data e hora atual
    $subDirectoryName = 'pasta_' . date('d-m-Y-H-i-s') . '/';
    $subDirectoryPath = $outputDirectory . $subDirectoryName;

    // Verifica se o subdiretório não existe; se não, tenta criá-lo
    if (!file_exists($subDirectoryPath) && !is_dir($subDirectoryPath)) {
        if (!mkdir($subDirectoryPath, 0777, true)) {
            return false;
        }
    }

    // Caminho completo do arquivo de saída dentro do subdiretório
    $newFileName = $subDirectoryPath . $fileName;

    // Escreve o código ofuscado no arquivo
    $obfuscatedContent = "<?php\n";
    $obfuscatedContent .= "// Todos os Direitos Reservados a PHPADMIN Fone: (69) 9.9203-0882\n";
    $obfuscatedContent .= "\$OOO00O00O0=file(__FILE__);";
    $obfuscatedContent .= "eval(gzinflate(base64_decode('";
    $obfuscatedContent .= base64_encode(gzdeflate($code));
    $obfuscatedContent .= "')));\n";
    $obfuscatedContent .= "?>";

    if (file_put_contents($newFileName, $obfuscatedContent)) {
        return $newFileName;
    } else {
        return false;
    }
}

if ($_SERVER['REQUEST_METHOD'] === 'POST') {
    if (isset($_FILES['file']) && $_FILES['file']['error'] === UPLOAD_ERR_OK) {
        $fileTmpPath = $_FILES['file']['tmp_name'];
        $fileName = $_FILES['file']['name'];
        $fileSize = $_FILES['file']['size'];
        $fileType = $_FILES['file']['type'];
        $fileNameCmps = explode(".", $fileName);
        $fileExtension = strtolower(end($fileNameCmps));

        if ($fileExtension === 'php') {
            $code = file_get_contents($fileTmpPath);

            // Remove tags PHP de abertura e fechamento
            $code = str_replace(['<?php', '?>'], '', $code);

            // Realiza a ofuscação
            $generatedFileName = obfuscatePHP($code, $fileName);

            if ($generatedFileName) {
                $response['status'] = 'success';
                $response['message'] = "Arquivo ofuscado criado com sucesso: $generatedFileName";
            } else {
                $response['message'] = 'Erro ao criar o arquivo ofuscado.';
            }
        } else {
            $response['message'] = 'Tipo de arquivo inválido. Apenas arquivos PHP são permitidos.';
        }
    } else {
        $response['message'] = 'Erro no upload do arquivo. Código de erro: ' . $_FILES['file']['error'];
    }
} else {
    $response['message'] = 'Método de requisição inválido.';
}

header('Content-Type: application/json');
echo json_encode($response);
?>

Então eu pensei em mudar pra <<<HTML.  

 

Pra ver se resolve..

 

Se eu conseguir fazer com todos os php e html junto seria bom..

 

Eu posso esta errado em algo no php de ofuscado 

Share this post


Link to post
Share on other sites

Vamos lá, ofuscar o código pode parecer uma boa ideia para proteger a propriedade intelectual e impedir a engenharia reversa, mas há várias razões pelas quais isso pode não ser a melhor abordagem:

1. Manutenção Difícil

Ofuscar o código torna a manutenção extremamente difícil. Se um bug ou problema surgir, a depuração de código ofuscado pode ser um pesadelo, mesmo para os desenvolvedores originais. Isso pode aumentar significativamente o tempo e o custo de manutenção do software.

2. Impacto na Performance

A ofuscação pode introduzir complexidade desnecessária e aumentar o tempo de execução do código. Variáveis e funções com nomes curtos podem parecer menores, mas o processamento adicional para interpretar e executar o código pode impactar negativamente o desempenho.

3. Problemas de Compatibilidade

Ferramentas de ofuscação podem gerar código que não é totalmente compatível com todas as versões de PHP ou com todas as bibliotecas e frameworks utilizados. Isso pode levar a erros inesperados e problemas difíceis de diagnosticar.

4. Segurança Ilusória

A ofuscação oferece uma falsa sensação de segurança. Hackers experientes ainda podem deofuscar ou contornar a proteção. A segurança do software deve ser baseada em boas práticas de codificação, controle de acesso e criptografia de dados sensíveis, não apenas na ofuscação do código.

5. Dificuldade de Integração

Trabalhar com outras equipes ou integrar o código em sistemas maiores pode ser complicado quando o código está ofuscado. A colaboração é prejudicada, pois o entendimento do código é severamente limitado.

6. Experiência do Desenvolvedor

A ofuscação degrada a experiência do desenvolvedor. Novos desenvolvedores que se juntam ao projeto enfrentarão uma curva de aprendizado muito mais íngreme e terão dificuldade em contribuir eficazmente para o código base.

7. Problemas de Licenciamento

Se o seu software depende de bibliotecas de terceiros, a ofuscação pode violar os termos de licença dessas bibliotecas, que muitas vezes exigem que as modificações sejam visíveis e compreensíveis.

Conclusão

Embora a ofuscação possa parecer uma solução para proteger o código, os contras superam os prós na maioria dos casos. A segurança e a proteção da propriedade intelectual devem ser alcançadas através de boas práticas de desenvolvimento, revisões de código, testes de segurança e uma sólida arquitetura de software. A ofuscação pode ser uma camada adicional de proteção, mas não deve ser a principal estratégia de segurança.

Share this post


Link to post
Share on other sites

Ola, sobre Manutenção Difícil, eu fiz uma forma que toda vez que for fazer um ajsute etc.. ele automaticamente faz atualização no cliente entende... tipo para mim o codigo é normal, para o cliente ele vai ofuscado.....

 

 

Ele é um projeto que estou criando do zero no php puro sem uso de Framework 

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

  • Similar Content

    • By violin101
      Caros amigos, saudações.
       
      Humildemente peço desculpa por postar uma dúvida que tenho.

      Preciso salvar no MySql, os seguinte Registro:

      1 - Principal
      ====> minha dúvida começa aqui
      ==========> como faço para o Sistema Contar Automaticamente o que estiver despois do 1.____?
      1.01 - Matriz
      1.01.0001 - Estoque
      1.01.0002 - Oficina
      etc

      2 - Secundário
      2.01 - Loja_1
      2.01.0001 - Caixa
      2.01.0002 - Recepção
      etc
       
      Resumindo seria como se fosse um Cadastro de PLANO de CONTAS CONTÁBEIL.

      Grato,


      Cesar









       
    • By violin101
      Caros amigos, saudações.

      Por favor, me perdoa em recorrer a orientação dos amigos.

      Preciso fazer um Relatório onde o usuário pode Gerar uma Lista com prazo para vencimento de: 15 / 20/ 30 dias da data atual.

      Tem como montar uma SQL para o sistema fazer uma busca no MySql por período ou dias próximo ao vencimento ?

      Tentei fazer assim, mas o SQL me traz tudo:
      $query = "SELECT faturamento.*, DATE_ADD(faturamento.dataVencimento, INTERVAL 30 DAY), fornecedor.* FROM faturamento INNER JOIN fornecedor ON fornecedor.idfornecedor = faturamento.id_fornecedor WHERE faturamento.statusFatur = 1 ORDER BY faturamento.idFaturamento $ordenar ";  
      Grato,
       
      Cesar
       
       
       
       
    • By violin101
      Caros amigos, saudações
       
      Por favor, me perdoa em recorrer a orientação dos amigos, tenho uma dúvida.
       
      Gostaria de uma rotina onde o Sistema possa acusar para o usuário antes dos 30 dias, grifar na Tabela o aviso de vencimento próximo, por exemplo:
       
      Data Atual: 15/11/2024
                                           Vencimento
      Fornecedor.....................Data.....................Valor
      Fornecedor_1...........01/12/2024..........R$ 120,00 <== grifar a linha de Laranja
      Fornecedor_1...........01/01/2025..........R$ 130,00
      Fornecedor_2...........15/12/2024..........R$ 200,00 <== grifar a linha de Amarelo
      Fornecedor_2...........15/01/2025..........R$ 230,00
      Fornecedor_3...........20/12/2024..........R$ 150,00
       
      Alguém tem alguma dica ou leitura sobre este assunto ?

      Grato,
       
      Cesar
    • By violin101
      Caros amigos, saudações.

      Por favor, me perdoa em recorrer a ajuda dos amigos, mas preciso entender uma processo que não estou conseguindo sucesso.

      Como mencionado no Título estou escrevendo um Sistema Web para Gerenciamento de Empresa.
       
      Minha dúvida, que preciso muito entender:
      - preciso agora escrever a Rotina para Emissão de NFe e essa parte não estou conseguindo.
       
      tenho assistido alguns vídeos e leituras, mas não estou conseguindo sucesso, já fiz toda as importações das LIB da NFePhp conforme orientação.

      Preciso de ajuda.

      Algum dos amigos tem conhecimento de algum passo-a-passo explicando a criação dessa rotina ?

      tenho visto alguns vídeos com LARAVEL, mas quando tento utilizar e converter para PHP+Codeiginter, dá uma fila de erros que não entendo, mesmo informando as lib necessárias.

      Alguns do amigo tem algum vídeo, leitura explicando essa parte ?

      Grato,

      Cesar.
    • By violin101
      Caros amigos, saudações.

      Por favor, me perdoa em recorrer ao auxílio dos amigos, mas preciso entender e resolver um problema.
       
      Tenho uma Rotina que o usuário seleciona os produtos que deseja para requerer ao setor responsável.
       
      O usuário escolhe um produto qualquer e Clicla em um button para incluir a lista.

      O problema que estou enfrentando é que após escolher o produto e teclar ENTER o Sistema já salva no BD.
       
      Gostaria de criar uma Tecla de Atalho, para quando incluir/escolher o produto na lista, o usuário tecla como exemplo:
      ALT+A  para agregar a lista
      ALT+S para salvar a lista de itens desejados.

      Assim, quando teclar enter, o sistema não dispara o GRAVAR na Base de Dados.

      Grato,

      Cesar
       
       
       
×

Important Information

Ao usar o fórum, você concorda com nossos Terms of Use.